Herramientas de usuario

Herramientas del sitio


informatica:programacion:php:frameworks:codeigniter

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anteriorRevisión previa
Próxima revisión
Revisión previa
informatica:programacion:php:frameworks:codeigniter [2020/10/25 20:10] – [Modelo] tempwininformatica:programacion:php:frameworks:codeigniter [2024/12/04 11:54] (actual) – [CodeIgniter] tempwin
Línea 1: Línea 1:
 ====== CodeIgniter ====== ====== CodeIgniter ======
  
-Framework de PHP.+Framework de [[informatica:programacion:php|PHP]].
  
   * [[https://codeigniter.com|Web oficial]]   * [[https://codeigniter.com|Web oficial]]
Línea 17: Línea 17:
   * Vista: resultado visual   * Vista: resultado visual
   * Controlador: intermediario entre los datos y la presentación.   * Controlador: intermediario entre los datos y la presentación.
 +
 +Además, CodeIgniter sigue el patrón FrontController, es decir, hay un script que en base a lo que le pasemos por URL, enviará la petición al componente adecuado. Esquema:
 +
 +<code>
 +http://example.com/[clase-controlador]/[metodo-controlador]/[argumentoss]
 +</code>
 +
 +Por ejemplo:
 +
 +<code>
 +http://example.com/noticias/ver/10
 +</code>
 +==== Controlador ====
 +
 +''app/Controllers/Pages.php''
 +
 +<code php>
 +<?php
 +
 +namespace App\Controllers;
 +
 +use CodeIgniter\Controller;
 +
 +class Pages extends Controller
 +{
 +    public function index()
 +    {
 +        return view('welcome_message');
 +    }
 +
 +    public function view($page = 'home')
 +    {
 +        // ...
 +    }
 +}
 +</code>
  
 ==== Modelo ==== ==== Modelo ====
Línea 35: Línea 71:
  
   * https://codeigniter.com/userguide3/database/query_builder.html   * https://codeigniter.com/userguide3/database/query_builder.html
 +
 +
 ===== Instalación ===== ===== Instalación =====
  
 Requisitos: Requisitos:
  
-  * Versión de PHP 7.o superior con las siguientes extensiones:+  * Versión de PHP 7.o superior con las siguientes extensiones:
     * ''intl''     * ''intl''
     * ''mbstring''     * ''mbstring''
Línea 47: Línea 85:
  
 Se [[https://github.com/CodeIgniter4/framework/releases/latest|descarga]] y descomprime en el document root del servidor web. Se [[https://github.com/CodeIgniter4/framework/releases/latest|descarga]] y descomprime en el document root del servidor web.
 +
 +Tendremos la siguiente estructura de directorios:
 +
 +<code>
 +app/
 +public/
 +system/
 +writable/
 +</code>
  
 La web se servirá desde el directorio ''public'' (es diferente respecto a versiones anteriores del framework) La web se servirá desde el directorio ''public'' (es diferente respecto a versiones anteriores del framework)
Línea 61: Línea 108:
  
 <code> <code>
-FROM php:7-fpm-alpine +FROM php:8-fpm-alpine
-RUN apk add --update icu-dev oniguruma-dev+
  
-# Instalación de extensiones de PHP +RUN apk add --update --no-cache icu-dev oniguruma 
-RUN docker-php-ext-install mysqli pdo_mysql intl mbstring+ 
 +# Instalación extensiones PHP 
 +RUN docker-php-ext-install mysqli pdo_mysql intl
  
 # Instalación de Composer # Instalación de Composer
-RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/bin --filename=composer+RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/bin --filename=composer
 </code> </code>
  
 +La carpeta ''/var/www/html/writable'' (y todo lo que contenga) debe ser accesible para escritura por el servidor web. Si estamos en desarrollo, podemos ir a lo loco y optar por:
  
 +<code bash>
 +chmod 777 -R /var/www/html/writable
 +</code>
 +
 +Sin embargo, la recomendación es:
 +
 +<code bash>
 +chown -R <usuario_servidor_web> /var/www/html/writable
 +</code>
 ===== Configuración ===== ===== Configuración =====
  
Línea 129: Línea 187:
 </code> </code>
  
 +===== Configuración inicial =====
 +
 +Abrimos ''app/Config/App.php'' y establecemos la URL de base:
 +
 +<code php>
 +public $baseURL = 'http://miweb.com/';
 +</code>
 +
 +Si vamos a usar una base de datos, abrimos ''app/Config/Database.php'' y configuramos:
 +
 +<code php>
 +    public $default = [
 + 'DSN'      => '',
 + 'hostname' => 'localhost',
 + 'username' => '',
 + 'password' => '',
 + 'database' => '',
 + 'DBDriver' => 'MySQLi',
 + 'DBPrefix' => '',
 + 'pConnect' => false,
 + 'DBDebug'  => (ENVIRONMENT !== 'production'),
 + 'charset'  => 'utf8',
 + 'DBCollat' => 'utf8_general_ci',
 + 'swapPre'  => '',
 + 'encrypt'  => false,
 + 'compress' => false,
 + 'strictOn' => false,
 + 'failover' => [],
 + 'port'     => 3306,
 +    ];
 +</code>
 +
 +==== Fichero env ====
 +
 +Podemos establecer ciertas opciones/variables de configuración creando un fichero llamado ''.env''. La instalación de CodeIgniter viene con uno de ejemplo llamado ''env'' (sin el punto inicial)
 ====== Recursos ====== ====== Recursos ======
  
   * [[https://www.youtube.com/watch?v=uYX9FLi1BYg|CodeIgniter 4 User Login Tutorial - Part 1 - Project Setup & HTML]]   * [[https://www.youtube.com/watch?v=uYX9FLi1BYg|CodeIgniter 4 User Login Tutorial - Part 1 - Project Setup & HTML]]
 +  * [[https://stackoverflow.com/questions/30692283/codeigniter-uri-class-how-can-i-use-hyphen-instead-underscore|Usar guión bajo en lugar de guión como separador]]
 +  * [[https://includebeer.com/en/blog/how-to-build-a-basic-web-application-with-codeigniter-4-part-1|How to build a basic web application with CodeIgniter 4 (part 1)]]
informatica/programacion/php/frameworks/codeigniter.1603653001.txt.gz · Última modificación: por tempwin