Crear y ejecutar un proyecto CodeIgniter
¿Qué es CodeIgniter?
CodeIgniter es un framework ligero de PHP adecuado para desarrollar aplicaciones web rápidas y eficientes. Sigue el patrón de diseño MVC (Model-View-Controller), proporcionando una variedad de funciones y herramientas que permiten a los desarrolladores construir aplicaciones web de alta calidad rápidamente. CodeIgniter es conocido por su simplicidad, alto rendimiento y facilidad de aprendizaje, siendo la elección preferida de muchos desarrolladores.
Principales características y ventajas de CodeIgniter
- Ligero: El sistema central de CodeIgniter es muy pequeño, solo incluye los componentes necesarios, lo que permite una velocidad de carga muy rápida.
- Alto rendimiento: CodeIgniter es famoso por su rendimiento y velocidad eficiente, pudiendo manejar solicitudes concurrentes altas.
- Fácil de aprender: Ofrece una API sencilla y documentación abundante, permitiendo a los desarrolladores comenzar rápidamente.
- Flexibilidad: Permite a los desarrolladores elegir y usar libremente bibliotecas y complementos de terceros, facilitando la extensión y personalización de funciones.
- Fuerte soporte comunitario: Cuenta con una comunidad activa de desarrolladores y una variedad de extensiones de terceros.
CodeIgniter puede ayudar a los desarrolladores a construir aplicaciones web de alto rendimiento y alta calidad rápidamente, siendo adecuado para proyectos de cualquier tamaño.
Crear y ejecutar un proyecto CodeIgniter usando ServBay
En este artículo, utilizaremos el entorno PHP proporcionado por ServBay para crear y ejecutar un proyecto CodeIgniter. Utilizaremos la función "Host" de ServBay para configurar el servidor web y acceder al proyecto mediante una configuración simple.
Nota: Si has sido usuario de NGINX o Apache anteriormente
ServBay utiliza Caddy como servidor web por defecto. Para usuarios que migran de NGINX y Apache a ServBay, hay algunos puntos clave a tener en cuenta:
Configuración de Caddy
ServBay ya tiene Caddy incorporado y la configuración predeterminada ha sido optimizada y depurada. Los desarrolladores solo necesitan gestionar los sitios a través de la función "Host" de ServBay sin necesidad de modificar manualmente los archivos de configuración de Caddy.
Reglas de reescritura y .htaccess
En NGINX y Apache, los desarrolladores suelen escribir sus propias reglas de reescritura y archivos .htaccess para manejar la reescritura de URL y otras configuraciones. Sin embargo, ServBay ya tiene las reglas de Caddy configuradas de fábrica, por lo que, a menos que haya requisitos especiales, no es necesario escribir estas reglas manualmente.
Aprende más
Para más información, consulta Rewrite y htaccess, Cómo migrar un sitio web Apache a ServBay, y Cómo migrar un sitio web NGINX a ServBay.
Crear un proyecto CodeIgniter
TIP
ServBay recomienda a los desarrolladores colocar el sitio web en el directorio /Applications/ServBay/www
para una fácil gestión.
Instalar Composer
ServBay incluye Composer de fábrica, por lo que no es necesario instalarlo por separado.
Crear un proyecto CodeIgniter
Utiliza 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
Entra en el directorio del nuevo proyecto CodeIgniter:
bashcd /Applications/ServBay/www/servbay-codeigniter-app
1
Configuración inicial
Configurar la conexión a la base de datos
Configura la información 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
Utiliza la función "Host" de ServBay para acceder al proyecto CodeIgniter a través del servidor web. En la configuración del "Host" de ServBay, agrega un nuevo host:
- Nombre:
My First CodeIgniter Dev Site
- Dominio:
servbay-codeigniter-test.local
- Tipo de sitio web:
PHP
- Versión de PHP: Elige
8.3
- Directorio raíz del sitio web:
/Applications/ServBay/www/servbay-codeigniter-app/public
Consulta los pasos detallados en Añadir el primer sitio web.
Agregar código de ejemplo
Agrega 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 el navegador y accede a la siguiente URL:
https://servbay-codeigniter-test.local
: Verás que la página muestraHello ServBay!
.
Ejemplo de base de datos NoSQL
Ejemplo con Memcached
Instalar la extensión Memcached
En ServBay, la extensión Memcached ya está preinstalada, no es necesario instalarla por separado.
Configurar Memcached
Configura la información de conexión a 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 una ruta en el archivo
app/Config/Routes.php
:php$routes->get('/memcached', 'Home::memcached');
1Abre el navegador y visita: https://servbay-codeigniter-test.local/memcached
Ejemplo con Redis
Instalar la extensión Redis
En ServBay, la extensión Redis ya está preinstalada, no es necesario instalarla por separado.
Configurar Redis
Configura la información de conexión a 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 una ruta en el archivo
app/Config/Routes.php
:php$routes->get('/redis', 'Home::redis');
1Abre el navegador y visita: https://servbay-codeigniter-test.local/redis
Ejemplo de base de datos relacional
Crear estructura de la base de datos y archivos de migración
Crear 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
Ubica 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 la migración
Usa el comando de migración de CodeIgniter para ejecutar la migración y crear la tabla en la base de datos:
bashphp spark migrate
1
Ejemplo con MySQL
Configurar MySQL
Configura la información de conexión a 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' => 'utf8', 'DBCollat' => 'utf8_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
19Agregar rutas
Añade las siguientes rutas en el archivo
app/Config/Routes.php
:php$routes->get('/mysql-add', 'Home::mysqlAdd'); $routes->get('/mysql', 'Home::mysql');
1
2Escribir datos de usuario
Escribe 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 el navegador y visita:
https://servbay-codeigniter-test.local/mysql-add
yhttps://servbay-codeigniter-test.local/mysql
Ejemplo con PostgreSQL
Configurar PostgreSQL
Configura la información de conexión a 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 el siguiente comando para generar el 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
Ejecuta el siguiente comando para realizar la migración y crear la estructura de la tabla:
bashphp spark migrate
1Agregar rutas
Añade las siguientes rutas en el archivo
app/Config/Routes.php
:php$routes->get('/pgsql-add', 'Home::pgsqlAdd'); $routes->get('/pgsql', 'Home::pgsql');
1
2Escribir datos de usuario
Escribe 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 el navegador y visita:
https://servbay-codeigniter-test.local/pgsql-add
yhttps://servbay-codeigniter-test.local/pgsql
A través de estos pasos, has creado y ejecutado exitosamente un proyecto CodeIgniter y has usado las funciones proporcionadas por ServBay para gestionar y acceder a tu proyecto, conectando varias bases de datos y llamando a los datos. Espero que este artículo te haya ayudado a comenzar rápidamente con CodeIgniter y aplicarlo en tus proyectos.