Codeigniter es un framework de php que sirve para desarrollar todo tipo de proyectos. Esta herramienta puede ser adecuada para usted si:

  • Quiere un framework que ocupe poco espacio
  • Necesita un rendimiento excepcional
  • Desea un framework que requiera una configuración casi nula
  • Prefiere un framework que no requiera que use la línea de comando
  • Desea un framework que no requiera que se adhiera a reglas de codificación restrictivas
  • No está interesado en bibliotecas monolíticas a gran escala (como PEAR)
  • No desea verse obligado a aprender un lenguaje de plantillas (aunque un analizador de plantillas está disponible opcionalmente si lo desea)
  • Evita la complejidad, favoreciendo las soluciones simples
  • Necesita una documentación clara y completa.

Requisitos del servidor

Se requiere PHP versión 7.4 o posterior, con la extensión intl y la extensión mbstring instaladas. Las siguientes extensiones de PHP deben estar habilitadas en su servidor:

  • php-json
  • php-mysqlnd (if you use MySQL)
  • php-xml

Para usar CURLRequest, necesitará libcurl instalado. Se requiere una base de datos para la mayoría de la programación de aplicaciones web. Las bases de datos soportadas actualmente son:

  • MySQL a través del controlador MySQLi (solo versión 5.1 y superior)
  • PostgreSQL a través del controlador Postgre
  • SQLite3 a través del controlador SQLite3
  • MSSQL a través del controlador SQLSRV (solo versión 2005 y superior)
  • Oracle a través del controlador OCI8 (solo versión 12.1 y superior).

No todos los controladores se han convertido/reescrito para CodeIgniter4. La siguiente lista muestra los más destacados.

  • MySQL (5.1+) a través del controlador PDO
  • Oracle a través de los controladores PDO
  • PostgreSQL a través del controlador PDO
  • MSSQL a través del controlador PDO
  • SQLite a través de los controladores sqlite (versión 2) y PDO
  • CUBRID a través de los controladores cubrid y PDO
  • Interbase/Firebird a través de los controladores ibase y PDO
  • ODBC a través de los controladores odbc y PDO (debe saber que ODBC es en realidad una capa de abstracción)

Créditos

CodeIgniter fue desarrollado originalmente por EllisLab. El framework se escribió para el rendimiento en el mundo real, con muchas de las bibliotecas de clases originales, asistentes y subsistemas tomados del código base de Expression Engine. Durante años, fue desarrollado y mantenido por EllisLab, el equipo de desarrollo de Expression Engine y un grupo de miembros de la comunidad llamado Reactor Team.

En 2014, el Instituto de Tecnología de Columbia Británica adquirió CodeIgniter y luego se anunció oficialmente como un proyecto mantenido por la comunidad. En 2019, la Fundación CodeIgniter se formó para proporcionar un grupo de administración perpetuo separado de cualquier otra entidad para ayudar a garantizar el futuro del framework.

Cumplimiento de PSR

PHP-FIG se creó en 2009 para ayudar a que el código sea más interoperable entre marcos mediante la ratificación de interfaces, guías de estilo y más, que los miembros pueden implementar o no libremente. Si bien CodeIgniter no es miembro de la FIG, se mantiene compatible con varias de sus propuestas. Esta guía pretende enumerar el estado de nuestro cumplimiento con las diversas propuestas aceptadas y algunos borradores.

PSR-1: Estándar de codificación básica

Esta recomendación cubre los estándares básicos de nombres de archivos, métodos y clases. Nuestra guía de estilo cumple con PSR-1 y agrega sus propios requisitos.

PSR-12: Estilo de codificación extendido

Nuestra guía de estilo sigue la recomendación más un conjunto de nuestras propias convenciones de estilo.

PSR-3: Interfaz de registrador

El registrador de CodeIgniter implementa todas las interfaces proporcionadas por este PSR.

PSR-4: Estándar de carga automática

Este PSR proporciona un método para organizar archivos y espacios de nombres para permitir un método estándar de clases de carga automática. Nuestro cargador automático cumple con las recomendaciones de PSR-4.

PSR-7: interfaz de mensajes HTTP

Este PSR estandariza una forma de representar las interacciones HTTP. Si bien muchos de los conceptos se convirtieron en parte de nuestra capa HTTP, CodeIgniter no busca la compatibilidad con esta recomendación. Si encuentra algún lugar en el que afirmamos cumplir con un PSR, pero no lo ha ejecutado correctamente, hágannoslo saber y lo solucionaremos. O envíe una solicitud de incorporación de cambios con los cambios necesarios.

Instalación de CodeIgniter

CodeIgniter tiene dos métodos de instalación compatibles: descarga manual o uso de Composer. ¿Cuál es el adecuado para usted?

  • Recomendamos la instalación de Composer porque mantiene CodeIgniter actualizado fácilmente
  • Si desea la instalación simple de “descargar y listo” por la que CodeIgniter3 es conocido, elija la instalación manual.

Independientemente de cómo elija instalar y ejecutar CodeIgniter4, se puede acceder a la guía del usuario en línea.

Nota: Antes de usar CodeIgniter 4, asegúrese de que su servidor cumpla con los requisitos, en particular la versión de PHP y las extensiones de PHP que se necesitan. Es posible que tenga que descomentar las php.ini o líneas de “extensión” para habilitar “curl” e “intl”, por ejemplo.

Instalación del Composer

Composer se puede usar de varias maneras para instalar CodeIgniter4 en su sistema. La primera técnica describe la creación de un proyecto esqueleto usando CodeIgniter4, que luego usaría como base para una nueva aplicación web. La segunda técnica que se describe a continuación le permite agregar CodeIgniter4 a una aplicación web existente.

Nota: Si está utilizando un repositorio de Git para almacenar su código, o para colaborar con otros, entonces la carpeta vendor normalmente sería “git ignorada”. En tal caso, deberá hacer una cuando clone el repositorio en un nuevo sistema composer update.

Iniciador de aplicación

El repositorio de inicio de la aplicación CodeIgniter 4 contiene una aplicación básica, con una dependencia del compositor en la última versión publicada del framework. Esta técnica de instalación sería adecuada para un desarrollador que desee iniciar un nuevo proyecto basado en CodeIgniter4.

Instalación

Esta es la carpeta raíz de su proyecto: > composer create-project codeigniter4/appstarter project-root

El comando anterior creará una carpeta “proyecto-raíz”. Si omite el argumento “proyecto-raíz”, el comando creará una carpeta “appstarter”, la cual se puede renombrar según corresponda.

Nota: El autocargador de CodeIgniter no permite caracteres especiales que son ilegales en los nombres de archivo en ciertos sistemas operativos. Los símbolos que se pueden utilizar son /, _, ., :y \espacio. Entonces, si instala CodeIgniter en la carpeta que contiene los caracteres especiales como (,), etc., CodeIgniter no funcionará.

Si no necesita o no desea que se instale phpunit y todas sus dependencias de compositor, agregue la –no-devopción al final de la línea de comando anterior. Eso dará como resultado que solo el marco y las tres dependencias de confianza que empaquetamos se instalen con composer. Un ejemplo de este comando de instalación, utilizando el proyecto raíz predeterminado “appstarter”: > composer create-project codeigniter4/appstarter --no-dev

Configuración inicial

Después de la instalación, se requieren algunas configuraciones iniciales. Consulte Configuración inicial para conocer los detalles.

Actualización

Siempre que haya una nueva versión, desde la línea de comando en la raíz de su proyecto > composer update lea las instrucciones de actualización y consulte Cambios y mejoras importantes.

  • Ventajas: Instalación simple y fácil de actualizar
  • Contras: Todavía necesita verificar los app/Config cambios después de la actualización.

Estructura

Carpetas en su proyecto después de configurar:

  • Aplicación, público, pruebas, escribible
  • proveedor/codeigniter4/marco/sistema.

Último desarrollador

El repositorio de App Starter viene con buildsscripts para cambiar las fuentes de Composer entre la versión estable actual y la rama de desarrollo más reciente del marco. Use este script para un desarrollador que esté dispuesto a vivir con los últimos cambios inéditos, que pueden ser inestables. La guía del usuario de desarrollo está disponible en línea. Tenga en cuenta que esto difiere de la guía del usuario publicada y pertenecerá explícitamente a la rama de desarrollo.

En la raíz de tu proyecto > php builds development, el comando anterior actualizará composer.json para señalar la developrama del repositorio de trabajo y actualizará las rutas correspondientes en los archivos de configuración y XML. Para revertir estos cambios, ejecute: > php builds release Después de usar el buildscomando, asegúrese de ejecutar para sincronizar la carpeta de su proveedor con la última compilación de destino.

Agregar CodeIgniter 4 a un proyecto existente

El mismo repositorio de marco CodeIgniter 4 descrito en “Instalación manual” también se puede agregar a un proyecto existente usando Composer.

Instalación

Desarrolle su aplicación dentro de la appcarpeta, y la publiccarpeta será la raíz de su documento. En la raíz de tu proyecto: > composer require codeigniter4/framework Al igual que con el método de instalación del compositor anterior, puede omitir la instalación de phpunit y sus dependencias agregando el –no-devargumento al comando. 

Configuración

  1. Copie las carpetas desde la raíz de su proyecto testswritablevendor/codeigniter4/framework
  2. Copie los archivos desde la raíz de su proyecto phpunit.xml.distsparkvendor/codeigniter4/framework
  3. Deberá ajustar la $systemDirectorypropiedad en app/Config/Paths.php para hacer referencia al proveedor. Por ejemplo: .ROOTPATH . ‘/vendor/codeigniter4/framework/system’

Configuración inicial

Se requieren algunas configuraciones iniciales. Consulte Configuración inicial para conocer los detalles.

Actualización

Siempre que haya una nueva versión, desde la línea de comando en la raíz de su proyecto: > composer update Lea las instrucciones de actualización y consulte Cambios y mejoras importantes.

  • Ventajas: Instalación relativamente simple; fácil de actualizar
  • Contras: Todavía necesita verificar los app/Config cambios después de la actualización.

Estructura

Carpetas en su proyecto después de configurar:

  • aplicación, público, pruebas, escribible
  • proveedor/codeigniter4/marco/sistema.

Instalación de traducciones

Si desea aprovechar las traducciones de mensajes del sistema, puede agregarlas a su proyecto de manera similar. Desde la línea de comando dentro de la raíz de su proyecto:

> composer require codeigniter4 / translations

Estos se actualizarán junto con el marco cada vez que haga un archivo.

CodeIgniter: Ejecutando tu aplicación

Una aplicación CodeIgniter4 se puede ejecutar de varias maneras diferentes: alojada en un servidor web, usando virtualización o usando la herramienta de línea de comandos de CodeIgniter para realizar pruebas. Esta sección aborda cómo usar cada técnica y explica algunos de los pros y los contras de ellas. Si es nuevo en CodeIgniter, lea la sección Primeros pasos de la Guía del usuario para comenzar a aprender cómo crear aplicaciones PHP dinámicas.

Configuración inicial

  1. Abra el archivo app/Config/App.php con un editor de texto y establezca su URL base en $baseURL. Si necesita más flexibilidad, la baseURL se puede establecer dentro del archivo .env, como app.baseURL = ‘http://example.com/’ (¡use siempre una barra inclinada final en su URL base!).
Nota: Si no configura baseURL correctamente, en el modo de desarrollo, es posible que la barra de herramientas de depuración no se cargue correctamente y que las páginas web tarden mucho más en mostrarse.
2. Si tiene la intención de utilizar una base de datos, abra el archivo app/Config/Database.php con un editor de texto y establezca la configuración de su base de datos. Alternativamente, estos podrían configurarse en su archivo .env.  
3. Si no está en el servidor de producción, configúrelo CI_ENVIRONMENTen development el archivo .env para aprovechar las herramientas de depuración proporcionadas. Consulte Configuración del modo de desarrollo para obtener más detalles.
IMPORTANTE: En entornos de producción, debe deshabilitar la visualización de errores y cualquier otra funcionalidad exclusiva de desarrollo. En CodeIgniter, esto se puede hacer configurando el entorno en “producción”. De forma predeterminada, la aplicación se ejecutará en el entorno de “producción”. Véase también La constante MEDIO AMBIENTE.

Servidor de desarrollo local

CodeIgniter 4 viene con un servidor de desarrollo local, aprovechando el servidor web integrado de PHP con enrutamiento CodeIgniter. Puede usar el servescript para iniciarlo, con la siguiente línea de comando en el directorio principal:
> php spark serve
Esto iniciará el servidor y ahora puede ver su aplicación en su navegador en http://localhost:8080.
Nota: El servidor de desarrollo incorporado solo debe usarse en máquinas de desarrollo locales. NUNCA debe usarse en un servidor de producción.
Si necesita ejecutar el sitio en un host que no sea simplemente localhost, primero deberá agregar el host a su hostsarchivo. La ubicación exacta del archivo varía en cada uno de los principales sistemas operativos, aunque todos los sistemas tipo Unix (incluido OS X) normalmente mantendrán el archivo en /etc/hosts. El servidor de desarrollo local se puede personalizar con tres opciones de línea de comandos:
  • Puede usar la opción CLI para especificar un host diferente para ejecutar la aplicación en:
> php spark serve --host example.dev
  • De forma predeterminada, el servidor se ejecuta en el puerto 8080. No obstante, es posible que tenga más de un sitio en ejecución o que ya tenga otra aplicación que utilice ese puerto. Puede usar la opción CLI para especificar una diferente:
> php spark serve --port 8081
También puede especificar una versión específica de PHP para usar, con la opción CLI, con su valor establecido en la ruta del ejecutable de PHP que desea usar:
> php spark serve --php /usr/bin/php7.6.5.4

Alojamiento con Apache

Una aplicación web CodeIgniter4 normalmente se aloja en un servidor web. Apache httpdes la plataforma “estándar”, y se asume en gran parte de nuestra documentación. Apache se incluye con muchas plataformas, pero también se puede descargar en un paquete con un motor de base de datos y PHP desde Bitnami.

.htaccess

El módulo “mod_rewrite” habilita las URL sin “index.php” en ellas y se asume en nuestra guía del usuario. Asegúrese de que el módulo de reescritura esté habilitado (sin comentar) en el archivo de configuración principal. Por ejemplo:
apache2/conf/httpd.conf: LoadModule rewrite_module modules/mod_rewrite.so
También asegúrese de que el elemento de la raíz del documento predeterminado también habilite esto en la configuración “AllowOverride”:
<Directory "/opt/lamp/apache2/htdocs"> Options Indexes FollowSymLinks AllowOverride All Require all granted </Directory>

Alojamiento virtual

Recomendamos usar “alojamiento virtual” para ejecutar sus aplicaciones. Puede configurar diferentes alias para cada una de las aplicaciones en las que trabaja, Asegúrese de que el módulo de alojamiento virtual esté habilitado (sin comentar) en el archivo de configuración principal, por ejemplo:
apache2/conf/httpd.conf: LoadModule vhost_alias_module modules/mod_vhost_alias.so
Agregue un alias de host en su archivo de “hosts”, generalmente /etc/hosts en plataformas de tipo Unix o c:/Windows/System32/drivers/etc/hosts en Windows. Agregue una línea al archivo. Esto podría ser “myproject.local” o “myproject.test”, por ejemplo:

127.0.0.1 myproject.local

Agregue un elemento para su aplicación web dentro de la configuración de alojamiento virtual, por ejemplo:
apache2/conf/extra/httpd-vhost.conf:
<VirtualHost *:80> DocumentRoot "/opt/lamp/apache2/htdocs/myproject/public" ServerName myproject.local ErrorLog "logs/myproject-error_log" CustomLog "logs/myproject-access_log" common </VirtualHost>
Si la carpeta de su proyecto no es una subcarpeta de la raíz de documentos de Apache, es posible que su elemento necesite un elemento anidado para otorgar acceso al servidor web a los archivos.

Con mod_userdir (hosts compartidos)

Una práctica común en entornos de alojamiento compartido es utilizar el módulo de Apache “mod_userdir” para habilitar hosts virtuales por usuario automáticamente. Se requiere una configuración adicional para permitir que CodeIgniter4 se ejecute desde estos directorios por usuario. Lo siguiente asume que el servidor ya está configurado para “mod_userdir”.
Una guía para habilitar este módulo está disponible en la documentación de Apache. Debido a que CodeIgniter4 espera que el servidor encuentre el controlador frontal del marco /public/index.php de forma predeterminada, debe especificar esta ubicación como una alternativa para buscar la solicitud. (Esto incluso si CodeIgniter4 está instalado dentro del directorio web por usuario).
El directorio web de usuario predeterminado ~/public_html se especifica mediante la directiva UserDir, generalmente en /apache2/mods-available/userdir.conf o /apache2/conf/extra/httpd-userdir.conf: UserDir public_html
Por lo tanto, deberá configurar Apache para buscar el directorio público de CodeIgniter antes de intentar servir el valor predeterminado:
UserDir "public_html/public" "public_html"
Asegúrese de especificar opciones y permisos para el directorio público de CodeIgniter también. Un userdir.conf podría parecerse a:
<IfModule mod_userdir.c> UserDir "public_html/public" "public_html" UserDir disabled root <Directory /home/*/public_html> AllowOverride All Options MultiViews Indexes FollowSymLinks <Limit GET POST OPTIONS> # Apache <= 2.2: # Order allow,deny # Allow from all # Apache >= 2.4: Require all granted </Limit> <LimitExcept GET POST OPTIONS> # Apache <= 2.2: # Order deny,allow # Deny from all # Apache >= 2.4: Require all denied </LimitExcept> </Directory> <Directory /home/*/public_html/public> AllowOverride All Options MultiViews Indexes FollowSymLinks <Limit GET POST OPTIONS> # Apache <= 2.2: # Order allow,deny # Allow from all # Apache >= 2.4: Require all granted </Limit> <LimitExcept GET POST OPTIONS> # Apache <= 2.2: # Order deny,allow # Deny from all # Apache >= 2.4: Require all denied </LimitExcept> </Directory> </IfModule>

predeterminado.conf

Esta configuración habilita las URL sin “index.php” y utiliza “404 – Archivo no encontrado” de CodeIgniter para las URL que terminan en “.php”.
server { listen 80; listen [::]:80; server_name example.com; root /var/www/example.com/public; index index.php index.html index.htm; location / { try_files $uri $uri/ /index.php$is_args$args; } location ~ \.php$ { include snippets/fastcgi-php.conf; # With php-fpm: fastcgi_pass unix:/run/php/php7.3-fpm.sock; # With php-cgi: # fastcgi_pass 127.0.0.1:9000; } error_page 404 /index.php; # deny access to hidden files such as .htaccess location ~ /\. { deny all; } }

Bootstrapping de la aplicación

En algunos escenarios, querrá cargar el marco sin ejecutar realmente toda la aplicación. Esto es particularmente útil para las pruebas unitarias de su proyecto, pero también puede ser útil para usar herramientas de terceros para analizar y modificar su código.
El marco viene con un script de arranque separado específicamente para este escenario: system/Test/bootstrap.php. La mayoría de las rutas a su proyecto se definen durante el proceso de arranque. Puede usar constantes predefinidas para anularlas, pero cuando use las predeterminadas, asegúrese de que sus rutas se alineen con la estructura de directorio esperada para su método de instalación.

¿Cómo puedo saber si mi instalación está funcionando?

Desde la línea de comando, en la raíz de su proyecto: > php spark serve

Solo se carga la página predeterminada

Si descubre que, independientemente de lo que ingrese en su URL, solo se carga su página predeterminada, es posible que su servidor no admita la variable REQUEST_URI necesaria para servir URL compatibles con los motores de búsqueda. Como primer paso, abra su archivo app/Config/App.php y busque la información del Protocolo URI.
Se le recomendará que pruebe un par de configuraciones alternativas. Si aún no funciona después de haber probado esto, deberá obligar a CodeIgniter a agregar un signo de interrogación a sus URL. Para hacer esto, abra su archivo app/Config/App.php y cambie esto:
<?php namespace Config; use CodeIgniter\Config\BaseConfig; class App extends BaseConfig { // ... public $indexPage = 'index.php'; // ... }
A esto:
<?php namespace Config; use CodeIgniter\Config\BaseConfig; class App extends BaseConfig { // ... public $indexPage = 'index.php?'; // ... }
https://aprendeinformaticas.com/