Crear y Ejecutar un Proyecto CodeIgniter
¿Qué es CodeIgniter?
CodeIgniter es un marco ligero de PHP adecuado para desarrollar aplicaciones web rápidas y eficientes. Sigue el patrón de diseño MVC (Model-View-Controller), ofreciendo un rico conjunto de características y herramientas que permiten a los desarrolladores construir rápidamente aplicaciones web de alta calidad. Conocido por su simplicidad, alto rendimiento y facilidad de aprendizaje, CodeIgniter es una elección popular entre los desarrolladores.
Principales Características y Ventajas de CodeIgniter
- Ligero: El sistema central de CodeIgniter es muy pequeño, conteniendo solo los componentes necesarios, lo que lo hace cargar muy rápidamente.
- Alto Rendimiento: CodeIgniter es conocido por su eficiencia y velocidad, capaz de manejar alta concurrencia.
- Fácil de Aprender: Proporciona una API simple y fácil de usar junto con documentación completa, permitiendo a los desarrolladores comenzar rápidamente.
- Flexibilidad: Permite a los desarrolladores elegir y usar libremente bibliotecas y plugins de terceros, haciendo las extensiones y personalizaciones convenientes.
- Fuerte Soporte Comunitario: Existe una comunidad activa de desarrolladores y una gran cantidad de extensiones de terceros.
CodeIgniter puede ayudar a los desarrolladores a construir rápidamente aplicaciones web de alto rendimiento y alta calidad, adecuadas para proyectos de cualquier escala.
Crear y Ejecutar un Proyecto CodeIgniter Usando ServBay
En este artículo, usaremos el entorno PHP de ServBay para crear y ejecutar un proyecto CodeIgniter. Utilizaremos la función 'Host' de ServBay para configurar el servidor web y lograr el acceso al proyecto mediante una configuración sencilla.
::: advertencia Nota: Si eres un usuario de NGINX o Apache
ServBay utiliza Caddy como servidor web predeterminado. Para los usuarios que migran de NGINX y Apache a ServBay, hay algunos cambios clave a tener en cuenta:
Configuración de Caddy
Caddy ya está incrustado en ServBay, y la configuración predeterminada ha sido optimizada y depurada. Los desarrolladores solo necesitan administrar el sitio a través de la función ‘Host’ de ServBay sin modificar manualmente los archivos de configuración de Caddy.
Reglas de Reescritura y .htaccess
En NGINX y Apache, los desarrolladores generalmente necesitan escribir sus propias reglas de reescritura y archivos .htaccess para la reescritura de URLs y otras configuraciones. Sin embargo, con ServBay, las reglas para Caddy vienen preconfiguradas, lo que significa que, a menos que haya un requisito especial, los desarrolladores no necesitan escribir estas reglas ellos mismos.
Más Información
Para más información, por favor consulta Reescritura y htaccess, Cómo Migrar un Sitio Web de Apache a ServBay, Cómo Migrar un Sitio Web de NGINX a ServBay.
:::
Crear un Proyecto CodeIgniter
::: consejo ServBay recomienda a los desarrolladores colocar sus sitios web en el directorio /Applications/ServBay/www
para una gestión más sencilla. :::
Instalar Composer
Composer viene preinstalado con ServBay, por lo que no es necesario instalarlo por separado.
Crear un Proyecto CodeIgniter
Usa Composer para crear un nuevo proyecto CodeIgniter:
bashcd /Applications/ServBay/www mkdir servbay-codeigniter-app cd servbay-codeigniter-app composer create-project codeigniter4/appstarter .
1
2
3
4Ingresar al Directorio del Proyecto
Ingresa al directorio del proyecto CodeIgniter recién creado:
bashcd /Applications/ServBay/www/servbay-codeigniter-app
1
Configuración Inicial
Configurar la Conexión a la Base de Datos
Configura los ajustes de conexión a la base de datos en el archivo
app/Config/Database.php
:phppublic $default = [ 'DSN' => '', 'hostname' => '127.0.0.1', 'username' => 'root', 'password' => 'password', 'database' => 'servbay_codeigniter_app', 'DBDriver' => 'MySQLi', 'DBPrefix' => '', 'pConnect' => false, 'DBDebug' => (ENVIRONMENT !== 'production'), 'charset' => 'utf8mb4', 'DBCollat' => 'utf8mb4_general_ci', 'swapPre' => '', 'encrypt' => false, 'compress' => false, 'strictOn' => false, 'failover' => [], 'port' => 3306, ];
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Configurar el Servidor Web
Usa la función 'Host' de ServBay para acceder al proyecto CodeIgniter a través del servidor web. Agrega un nuevo host en la configuración de 'Host' de ServBay:
- Nombre:
My First CodeIgniter Dev Site
- Dominio:
servbay-codeigniter-test.local
- Tipo de Sitio:
PHP
- Versión de PHP: Selecciona
8.3
- Directorio Raíz del Sitio:
/Applications/ServBay/www/servbay-codeigniter-app/public
Para pasos de configuración detallados, por favor consulta Adding the First Website.
Añadir Código de Ejemplo
Añade el siguiente código en el archivo app/Controllers/Home.php
:
namespace App\Controllers;
use CodeIgniter\Controller;
class Home extends Controller
{
public function index()
{
return 'Hello ServBay!';
}
public function memcached()
{
$cache = \Config\Services::cache();
$cache->save('key', 'Hello Memcached!', 60);
$value = $cache->get('key');
return $value;
}
public function redis()
{
$redis = \Config\Services::cache();
$redis->set('key', 'Hello Redis!');
$value = $redis->get('key');
return $value;
}
public function mysqlAdd()
{
$db = \Config\Database::connect();
$db->table('users')->insert([
'name' => 'ServBay',
'email' => '[email protected]',
]);
return 'User added';
}
public function mysql()
{
$db = \Config\Database::connect();
$users = $db->table('users')->get()->getResult();
return json_encode($users);
}
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
Acceder al Sitio Web
Abre tu navegador y visita la siguiente URL:
https://servbay-codeigniter-test.local
: Verás la salida de la páginaHello ServBay!
.
Ejemplos de Base de Datos NoSQL
Ejemplo de Memcached
Instalar Extensión Memcached
La extensión Memcached viene preinstalada en ServBay, por lo que no es necesaria una instalación adicional.
Configurar Memcached
Configura la información de conexión de Memcached en el archivo
app/Config/Cache.php
:phppublic $memcached = [ 'host' => '127.0.0.1', 'port' => 11211, 'weight' => 1, ];
1
2
3
4
5Usar Memcached
Usa la caché en el controlador:
phppublic function memcached() { $cache = \Config\Services::cache(); $cache->save('key', 'Hello Memcached!', 60); $value = $cache->get('key'); return $value; }
1
2
3
4
5
6
7Agrega la ruta a
app/Config/Routes.php
:php$routes->get('/memcached', 'Home::memcached');
1Abre un navegador y visita https://servbay-codeigniter-test.local/memcached
Ejemplo de Redis
Instalar Extensión Redis
La extensión Redis viene preinstalada en ServBay, por lo que no es necesaria una instalación adicional.
Configurar Redis
Configura la información de conexión de Redis en el archivo
app/Config/Cache.php
:phppublic string $handler = 'redis'; public $default = [ 'host' => '127.0.0.1', 'password' => null, 'port' => 6379, 'timeout' => 0, 'database' => 0, ];
1
2
3
4
5
6
7
8
9Usar Redis
Usa la caché en el controlador:
phppublic function redis() { $redis = \Config\Services::cache(); $redis->save('key', 'Hello Redis!'); $value = $redis->get('key'); return $value; }
1
2
3
4
5
6
7Agrega la ruta a
app/Config/Routes.php
:php$routes->get('/redis', 'Home::redis');
1Abre un navegador y visita https://servbay-codeigniter-test.local/redis
Ejemplos de Base de Datos Relacional
Ejemplo de MySQL
Configurar MySQL
Configura la información de conexión de MySQL en el archivo
app/Config/Database.php
:phppublic $default = [ 'DSN' => '', 'hostname' => '127.0.0.1', 'username' => 'root', 'password' => 'password', 'database' => 'servbay_codeigniter_app', 'DBDriver' => 'MySQLi', 'DBPrefix' => '', 'pConnect' => false, 'DBDebug' => (ENVIRONMENT !== 'production'), 'charset' => 'utf8mb4', 'DBCollat' => 'utf8mb4_general_ci', 'swapPre' => '', 'encrypt' => false, 'compress' => false, 'strictOn' => false, 'failover' => [], 'port' => 3306, ];
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19Crear Archivo de Migración
Usa la herramienta CLI de CodeIgniter para crear un archivo de migración:
bashphp spark make:migration create_users_table
1Editar Archivo de Migración
Encuentra el archivo de migración recién creado en el directorio
app/Database/Migrations
y edítalo para definir la estructura de la tabla de la base de datos:phpuse CodeIgniter\Database\RawSql; public function up() { $this->forge->addField([ 'id' => [ 'type' => 'INT', 'constraint' => 5, 'unsigned' => true, 'auto_increment' => true, ], 'name' => [ 'type' => 'VARCHAR', 'constraint' => '100', ], 'email' => [ 'type' => 'VARCHAR', 'constraint' => '100', 'unique' => true, ], 'created_at' => [ 'type' => 'TIMESTAMP', 'default' => new RawSql('CURRENT_TIMESTAMP'), ], 'updated_at' => [ 'type' => 'TIMESTAMP', 'default' => new RawSql('CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP'), ], ]); $this->forge->addKey('id', true); $this->forge->createTable('users'); }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32Ejecutar Migración
Usa el comando de migración de CodeIgniter para ejecutar la migración y crear la tabla de la base de datos:
bashphp spark migrate
1Agregar Ruta
Agrega las siguientes rutas a
app/Config/Routes.php
:php$routes->get('/mysql-add', 'Home::mysqlAdd'); $routes->get('/mysql', 'Home::mysql');
1
2Insertar Datos de Usuario
Inserta datos de usuario en el controlador:
phppublic function mysqlAdd() { $db = \Config\Database::connect(); $db->table('users')->insert([ 'name' => 'ServBay', 'email' => '[email protected]', ]); return 'User added'; }
1
2
3
4
5
6
7
8
9Usar MySQL
Llama a la base de datos en el controlador:
phppublic function mysql() { $db = \Config\Database::connect(); $users = $db->table('users')->get()->getResult(); return json_encode($users); }
1
2
3
4
5
6Abre un navegador y visita
https://servbay-codeigniter-test.local/mysql-add
yhttps://servbay-codeigniter-test.local/mysql
Ejemplo de PostgreSQL
Configurar PostgreSQL
Configura la información de conexión de PostgreSQL en el archivo
app/Config/Database.php
:phppublic $default = [ 'DSN' => '', 'hostname' => '127.0.0.1', 'username' => 'root', 'password' => 'password', 'database' => 'servbay_codeigniter_app', 'DBDriver' => 'Postgre', 'DBPrefix' => '', 'pConnect' => false, 'DBDebug' => (ENVIRONMENT !== 'production'), 'charset' => 'utf8', 'DBCollat' => 'utf8_general_ci', 'swapPre' => '', 'encrypt' => false, 'compress' => false, 'strictOn' => false, 'failover' => [], 'port' => 5432, ];
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19Crear Archivo de Migración
Usa la herramienta CLI de CodeIgniter para crear un archivo de migración:
bashphp spark make:migration create_users_table
1Editar Archivo de Migración
phpuse CodeIgniter\Database\RawSql; public function up() { $this->forge->addField([ 'id' => [ 'type' => 'INT', 'constraint' => 5, 'unsigned' => true, 'auto_increment' => true, ], 'name' => [ 'type' => 'VARCHAR', 'constraint' => '100', ], 'email' => [ 'type' => 'VARCHAR', 'constraint' => '100', 'unique' => true, ], 'created_at' => [ 'type' => 'TIMESTAMP', 'default' => new RawSql('NOW()'), ], 'updated_at' => [ 'type' => 'TIMESTAMP', 'default' => new RawSql('NOW()'), ], ]); $this->forge->addKey('id', true); $this->forge->createTable('users'); }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32Ejecutar Migración
Usa el comando de migración de CodeIgniter para ejecutar la migración y crear la tabla de la base de datos:
bashphp spark migrate
1Agregar Rutas
Agrega las siguientes rutas a
app/Config/Routes.php
:php$routes->get('/pgsql-add', 'Home::pgsqlAdd'); $routes->get('/pgsql', 'Home::pgsql');
1
2Insertar Datos de Usuario
Inserta datos de usuario en el controlador:
phppublic function pgsqlAdd() { $db = \Config\Database::connect(); $db->table('users')->insert([ 'name' => 'ServBay', 'email' => '[email protected]', ]); return 'User added'; }
1
2
3
4
5
6
7
8
9Usar PostgreSQL
Llama a la base de datos en el controlador:
phppublic function pgsql() { $db = \Config\Database::connect(); $users = $db->table('users')->get()->getResult(); return json_encode($users); }
1
2
3
4
5
6Abre un navegador y visita
https://servbay-codeigniter-test.local/p;pgsql-add
yhttps://servbay-codeigniter-test.local/pgsql
A través de los pasos anteriores, has creado y ejecutado con éxito un proyecto CodeIgniter, has usado las funciones de ServBay para gestionar y acceder a tu proyecto, y te has conectado a múltiples bases de datos para interactuar con los datos. Espero que este artículo te ayude a comenzar rápidamente con CodeIgniter y aplicarlo a tus proyectos.