Esta es la primera serie que escribo. Aprender CodeIgniter desde cero!
La intención es que podamos aprender este framework PHP y sacar el máximo provecho de esta herramienta que se ha popularizado bastante y la verdad que no en balde ya que ofrece muchísimas características muy interesantes. Espero cubrir de manera práctica temas útiles que a su vez nos den una mano en la didáctica.
También a medida que vamos avanzando voy a estar muy agradecido con los comentarios que puedan aportar aquellos que ya conocen el framework!
¿Qué es CodeIgniter?
CodeIgniter es un Framework de Desarrollo de Aplicaciones - una caja de herramientas - para personas que construyen sitios con PHP. Su objetivo es permitirte desarrollar proyectos mucho más rápido de lo que podrías si estuvieras escribiendo código desde cero, ofreciendo un amplio conjunto de bibliotecas para tareas necesarias, así como una interfaz sencilla y una estructura lógica para acceder a estas colecciones. CodeIgniter te permite de manera creativa centrarse en el proyecto, minimizando la cantidad de código necesario para una tarea determinada.
¿Para quienes es CodeIgniter?
CodeIgniter es para vos si:
- Querés un framework con una pequeña huella.
- Necesitas un rendimiento excepcional.
- Necesitas una amplia compatibilidad con el estándar de cuentas de alojamiento que ejecutan una variedad de versiones de PHP y configuraciones.
- Querés un framework que requiere casi cero configuración.
- Querés un framework que no requieren el uso de la línea de comandos.
- Querés un framework que no requiere que se adhieran a las normas restrictivas de codificación.
- No estás interesado en las bibliotecas monolíticas a gran escala como PEAR.
- No querés verte obligado a aprender un lenguaje de plantillas (aunque un analizador plantilla está opcionalmente disponible si deseas uno).
- Evitar la complejidad, favoreciendo las soluciones simples.
- Necesitas una documentación clara, completa.
Cuadro de flujo de trabajo
El siguiente gráfico muestra cómo fluyen los datos en todo el sistema:

- El index.php sirve como controlador frontal, inicializando la base de los recursos necesarios para ejecutar CodeIgniter.
- El enrutador examina la petición HTTP para determinar qué se debe hacer con ella.
- Si existe un archivo en caché, se envía directamente al navegador, sin pasar por la ejecución normal del sistema.
- Seguridad. Antes de que el controlador de aplicación se cargue, la petición HTTP y cualquier dato de usuario enviado se filtran para la seguridad.
- El controlador de carga del modelo, las librerías, ayudantes (helpers), y todos los demás recursos necesarios para procesar la solicitud.
- La vista una vez completada es renderizada luego se envía al navegador web para ser visto. Si el almacenamiento en caché está habilitado, la vista se almacena en caché primero de modo que en las solicitudes posteriores puedan ser servidas.
Modelo-Vista-Controlador
CodeIgniter está basado en el patrón de desarrollo Modelo-Vista-Controlador. MVC es un enfoque de software que separa la lógica de aplicación de la presentación. En la práctica, permite que las páginas Web contengan mínimas secuencias de comandos ya que la presentación está separada de los scripts PHP.
- El modelo representa las estructuras de datos. Normalmente las clases modelo contienen funciones que le ayudan a recuperar, insertar y actualizar la información en la base de datos.
- La vista es la información que es se presenta a un usuario. Una vista normalmente será una página web, pero en CodeIgniter, una vista también puede ser un fragmento de la página como un encabezado o un pie de página. También puede ser una página de RSS, o cualquier otro tipo de “página”.
- El controlador actúa como un intermediario entre el modelo, la vista, y todos los demás recursos necesarios para procesar la petición HTTP y generar una página web.
CodeIgniter tiene un enfoque bastante flojo para MVC ya que los modelos no son necesarios. Si vos no necesitás la separación añadida, o encontrás que el mantenimiento de los modelos requiere una mayor complejidad de la que quisieras, podés ignorarlos y construir tu aplicación mínimamente con los controladores y vistas. CodeIgniter también te permite incorporar tus propias secuencias de comandos existentes, o incluso desarrollar bibliotecas del núcleo para el sistema, lo que te permite trabajar de una manera que tiene más sentido.
Diseño y Objetivos de Arquitectura
La meta de CodeIgniter es obtener el máximo rendimiento, capacidad y flexibilidad en el paquete más pequeño y ligero que, sea posible.
Desde un punto de vista técnico y arquitectónico, CodeIgniter es creado con los siguientes objetivos:
- Instanciación dinámica. En CodeIgniter, de componentes se cargan y ejecutan rutinas sólo cuando se le solicita, en lugar de globalmente. No se hacen suposiciones por el sistema respecto a lo que puede ser necesario más allá de los recursos básicos mínimos, por lo que el sistema es muy ligero de peso de forma predeterminada. Los eventos, siendo disparados por la petición HTTP, y los controladores y vistas que diseñes determinará lo que se invoca.
- Acoplamiento flexible. El acoplamiento es el grado en que de componentes de un sistema dependen uno del otro. A la menor dependencia de componentes uno del otro más reutilizable y flexible se vuelve el sistema. El objetivo es un sistema de acoplamiento flexible.
- Singularidad de componentes. Singularidad es el grado en que de componentes tienen un propósito muy específico. En CodeIgniter, cada clase y sus funciones son muy autónomos a fin de permitir la máxima utilidad.
Requerimientos del servidor
PHP versión 5.1.6 o superior.
Una base de datos es requerida para la mayoría de las aplicaciones web. Actualmente las bases de datos soportadas son MySQL (4.1+), MySQLi, MS SQL, Postgres, Oracle, SQLite, y ODBC.
Instalación
- DESCARGARLO
Podés descargar CodeIgniter desde este enlace: http://codeigniter.com/downloads/ - INSTRUCCIONES DE INSTALACIÓN
CodeIgniter se instala en 4 pasos:- Descomprime el paquete
- Sube las carpetas y archivos de CodeIgniter a tu servidor. Normalmente el archivo index.php estará a la raíz.
- Abra el archivo
application/config/config.phpcon un editor de texto y configure la URL base. Si tenés intenciones de utilizar encriptación y/o sesiones, también hay que configurar la clave de encriptación. - Si tenés intenciones de utilizar base de datos, abra el archivo
application/config/database.phpcon un editor de texto y escriba la configuración adecuada para la base de datos.
Si se desea aumentar la seguridad ocultando las ubicación de sus archivos CodeIgniter puede cambiar el nombre de las carpetas de system y application a algo más privado. Si los renombras, tenés que abrir tu archivo principal index.php y establecer las variables
$system_foldery$application_folderen la parte superior del archivo con los nuevos nombres que hayas elegido.Para la mejor seguridad, tanto en la system y las carpetas application debe estar por encima de la raíz web, para que no sean directamente accesibles a través de un navegador. De forma predeterminada, los archivos. htaccess se incluyen en cada carpeta para evitar el acceso directo, pero es mejor sacarlos del acceso público en su totalidad en caso de cambio de servidor web de configuración o no cumplir con la htaccess..
Después de moverlos, abra el archivo index.php principal y establecezca las variables $system_folder y $application_folder, preferiblemente con una ruta completa, por ejemplo,
'/www/MiUsuario/system'.Una de las medidas adicionales a adoptar en entornos de producción es deshabilitar la presentación de informes de error de PHP y cualquier otra funcionalidad de sólo-desarrollo. En CodeIgniter, esto puede hacerse mediante el establecimiento de la constante
ENVIRONMENT.
Eso es todo!
Ahora que ya tenemos un parorama completo y muy amplio del tema estamos tratando y también sabemos preparar el ambiente adecuado para nuestro desarrollo estaremos viendo ya algo de código en el siguiente artículo de la serie.
