¡Esta es una revisión vieja del documento!
Tabla de Contenidos
CodeIgniter
Modelo Vista Controlador
CodeIgniter sigue el paradigma de programación Modelo-Vista-Controlador.
- Modelo: datos
- Vista: resultado visual
- Controlador: intermediario entre los datos y la presentación.
Modelo
app/Models
<?php namespace App\Models; use CodeIgniter\Model; class Productos_model extends Model { // Los nombres de estas variables son los que // define CodeIgniter, hay que usarlos tal cual protected $table = 'productos';
Instalación
Requisitos:
- Versión de PHP 7.2 o superior con las siguientes extensiones:
intlmbstringphp-jsonphp-mysqlndphp-xml
Se descarga y descomprime en el document root del servidor web.
La web se servirá desde el directorio public (es diferente respecto a versiones anteriores del framework)
La carpeta writable debe de ser modificable por el usuario que ejecuta el servidor web.
Docker Compose
Ejemplo de configuración de de infraestructura LEMP para instalar CodeIgniter
La imagen de PHP de Alpine la personalizamos con el siguiente Dockerfile:
FROM php:8-fpm-alpine RUN apk add --update --no-cache icu-dev oniguruma # Instalación extensiones PHP RUN docker-php-ext-install mysqli pdo_mysql intl # Instalación de Composer RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/bin --filename=composer
La carpeta /var/www/html/writable/cache/ debe ser accesible para escritura por el servidor web.
Configuración
Nginx
server{
(...)
root /var/www/example.com/public;
index index.php index.html index.htm;
(...)
location / {
try_files $uri $uri/ /index.php$is_args$args;
}
...
}
Si estuviese en un subdirectorio, por ejemplo, ci:
server{
...
location /ci {
try_files $uri $uri/ /ci/index.php?/$request_uri;
}
...
}
Para configuración general más habitual, se puede emplear el fichero env en lugar de ir a cada uno de los ficheros. Antes de nada, el fichero hay que renombrarlo a .env.
Poner CodeIgniter en modo desarrollo:
CI_ENVIRONMENT = development # CI_ENVIRONMENT = production
Establecer la URL del proyecto:
app.baseURL = 'https://mipagina.com/'
Configuración de la base de datos:
database.default.hostname = basedatos:PUERTO database.default.database = nombre-base-datos database.default.username = usuario-base-datos database.default.password = contraseña-base-datos database.default.DBDriver = MySQLi
