Crear y Ejecutar un Proyecto FuelPHP
¿Qué es FuelPHP?
FuelPHP es un framework PHP flexible y modular diseñado para desarrollar aplicaciones web modernas. Sigue el patrón de diseño HMVC (Hierarchical Model-View-Controller) y proporciona un conjunto rico de características y herramientas que permiten a los desarrolladores construir rápidamente aplicaciones web de alta calidad. Conocido por su flexibilidad, alto rendimiento y facilidad de extensión, FuelPHP es una opción preferida para muchos desarrolladores.
Características Clave y Ventajas de FuelPHP
- Arquitectura HMVC: Soporte para patrones de diseño MVC jerárquicos, facilitando la reutilización del código y el desarrollo modular.
- Alto Rendimiento: FuelPHP es conocido por su rendimiento y velocidad eficientes, capaz de manejar solicitudes de alta concurrencia.
- Fácil de Extender: Ofrece un mecanismo de extensión rico que permite a los desarrolladores añadir fácilmente funcionalidades personalizadas.
- Seguridad: Incluye múltiples características de seguridad integradas como validación de entrada, filtrado de salida y protección CSRF.
- Fuerte Soporte Comunitario: Tiene una comunidad de desarrolladores activa y una gran cantidad de extensiones de terceros.
FuelPHP puede ayudar a los desarrolladores a construir rápidamente aplicaciones web de alto rendimiento y alta calidad adecuadas para proyectos de varios tamaños.
Crear y Ejecutar un Proyecto FuelPHP con ServBay
En este artículo, utilizaremos el entorno PHP proporcionado por ServBay para crear y ejecutar un proyecto FuelPHP. Configuraremos un servidor web usando la función "Host" de ServBay y lograremos el acceso al proyecto a través de una configuración simple.
Nota: Para usuarios que hayan usado previamente NGINX o Apache
ServBay usa por defecto Caddy como servidor web. Para los usuarios que migran de NGINX y Apache a ServBay, hay algunos cambios clave a tener en cuenta:
Configuración de Caddy
ServBay tiene Caddy integrado, y la configuración por defecto está optimizada y depurada. Los desarrolladores solo necesitan gestionar sitios a través de la función "Host" de ServBay sin modificar manualmente el archivo 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 URL y otras configuraciones. Sin embargo, ServBay viene preconfigurado con reglas de Caddy, por lo que los desarrolladores no necesitan escribir estas reglas a menos que haya requisitos especiales.
Aprende Más
Para más información, por favor, consulta Rewrite and htaccess, How to Migrate Apache Websites to ServBay, y How to Migrate NGINX Websites to ServBay.
Crear un Proyecto FuelPHP
TIP
ServBay recomienda colocar los sitios web en el directorio /Applications/ServBay/www
para una gestión más fácil.
Instalar Composer
Composer viene preinstalado con ServBay, por lo que no se requiere una instalación separada.
Crear un Proyecto FuelPHP
Utiliza Composer para crear un nuevo proyecto FuelPHP:
bashcd /Applications/ServBay/www mkdir servbay-fuelphp-app cd servbay-fuelphp-app composer create-project fuel/fuel .
1
2
3
4Navegar al Directorio del Proyecto
Entra en el directorio del proyecto FuelPHP recién creado:
bashcd /Applications/ServBay/www/servbay-fuelphp-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
fuel/app/config/development/db.php
:phpreturn [ 'default' => [ 'connection' => [ 'dsn' => 'mysql:host=localhost;dbname=fuel_dev', 'username' => 'root', 'password' => 'root', ], ], ];
1
2
3
4
5
6
7
8
9
Configuración del Servidor Web
Utiliza la función "Host" de ServBay para acceder al proyecto FuelPHP a través de un servidor web. En la configuración de "Host" de ServBay, añade un nuevo host:
- Nombre:
Mi Primer Sitio Dev de FuelPHP
- Dominio:
servbay-fuelphp-test.local
- Tipo de Sitio Web:
PHP
- Versión de PHP: selecciona
8.3
- Directorio Raíz del Sitio Web:
/Applications/ServBay/www/servbay-fuelphp-app/public
Para pasos de configuración detallados, por favor, consulta Adding the First Website.
Añadiendo Código de Ejemplo
Añade el siguiente código en el archivo fuel/app/classes/controller/welcome.php
:
use Fuel\Core\Controller;
use Fuel\Core\Response;
use Fuel\Core\Cache;
use Fuel\Core\DB;
class Controller_Welcome extends Controller
{
public function action_index()
{
return Response::forge('¡Hola ServBay!');
}
public function action_memcached()
{
Cache::set('key', '¡Hola Memcached!', 60);
$value = Cache::get('key');
return Response::forge($value);
}
public function action_redis()
{
Cache::set('key', '¡Hola Redis!', 60);
$value = Cache::get('key');
return Response::forge($value);
}
public function action_mysql_add()
{
DB::insert('users')->set([
'name' => 'ServBay',
'email' => '[email protected]',
])->execute();
return Response::forge('Usuario añadido');
}
public function action_mysql()
{
$users = DB::select()->from('users')->execute()->as_array();
return Response::forge(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
45
Acceder al Sitio Web
Abre tu navegador y visita la siguiente URL:
https://servbay-fuelphp-test.local
: Verás la página con la salida¡Hola ServBay!
.
Ejemplos de Bases de Datos NoSQL
Ejemplo de Memcached
Instalar la Extensión Memcached
La extensión Memcached viene preinstalada con ServBay, no se requiere una instalación adicional.
Configurar Memcached
Configura la información de conexión de Memcached en el archivo
fuel/core/config/cache.php
:phpreturn [ 'driver' => 'memcached', 'memcached' => [ 'cache_id' => 'fuel', 'servers' => [ 'default' => [ 'host' => '127.0.0.1', 'port' => 11211, 'weight' => 100, ], ] ], ];
1
2
3
4
5
6
7
8
9
10
11
12
13
14Añadir Rutas
Añade las siguientes rutas a
fuel/app/config/routes.php
:phpreturn array( 'memcached' => 'welcome/memcached', )
1
2
3Usar Memcached
Usa el caché en el controlador:
phppublic function action_memcached() { Cache::set('key', '¡Hola Memcached!', 60); $value = Cache::get('key'); return Response::forge($value); }
1
2
3
4
5
6
7Abre un navegador y visita https://servbay-fuelphp-test.local/memcached
Ejemplo de Redis
Instalar la Extensión Redis
La extensión Redis viene preinstalada con ServBay, no se requiere una instalación adicional.
Configurar Redis
Configura la información de conexión de Redis en el archivo
fuel/app/config/redis.php
:phpreturn [ 'driver' => 'redis', 'redis' => [ 'database' => 'default', ], ];
1
2
3
4
5
6Añadir Rutas
Añade las siguientes rutas a
fuel/app/config/routes.php
:phpreturn array( 'redis' => 'welcome/redis', )
1
2
3Usar Redis
Usa el caché en el controlador:
phppublic function action_redis() { Cache::set('key', '¡Hola Redis!', 60); $value = Cache::get('key'); return Response::forge($value); }
1
2
3
4
5
6
7Abre un navegador y visita https://servbay-fuelphp-test.local/redis
Ejemplos de Bases de Datos Relacionales
Ejemplo de MySQL
Configurar MySQL
Configura la información de conexión de MySQL en el archivo
fuel/app/config/development/db.php
:phpreturn [ 'default' => [ 'connection' => [ 'dsn' => 'mysql:host=localhost;dbname=fuel_dev', 'username' => 'root', 'password' => 'root', ], ], ];
1
2
3
4
5
6
7
8
9Crear Archivos de Migración
Utiliza la herramienta oil de FuelPHP para crear archivos de migración:
bashphp oil g migration create_users_table
1Editar Archivos de Migración
Encuentra el archivo de migración recién creado en el directorio
fuel/app/migrations
y edítalo para definir la estructura de la tabla de la base de datos:php<?php namespace Fuel\Migrations; use Fuel\Core\DBUtil; class Create_users_table { public function up() { DBUtil::create_table('users', [ 'id' => ['type' => 'int', 'constraint' => 11, 'auto_increment' => true], 'name' => ['type' => 'varchar', 'constraint' => 100], 'email' => ['type' => 'varchar', 'constraint' => 100, 'unique' => true], ], ['id']); } public function down() { DBUtil::drop_table('users'); } }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21Ejecutar Migración
Utiliza la herramienta oil de FuelPHP para ejecutar la migración y crear la tabla de la base de datos:
bashphp oil refine migrate
1Añadir Rutas
Añade las siguientes rutas a
fuel/app/config/routes.php
:phpreturn array( 'mysql_add' => 'welcome/mysql_add', 'mysql' => 'welcome/mysql', )
1
2
3
4Insertar Datos de Usuario
Inserta datos de usuario en el controlador:
phppublic function action_mysql_add() { DB::insert('users')->set([ 'name' => 'ServBay', 'email' => '[email protected]', ])->execute(); return Response::forge('Usuario añadido'); }
1
2
3
4
5
6
7
8
9Usar MySQL
Llama a la base de datos en el controlador:
phppublic function action_mysql() { $users = DB::select()->from('users')->execute()->as_array(); return Response::forge(json_encode($users)); }
1
2
3
4
5
6Abre un navegador y visita
https://servbay-fuelphp-test.local/mysql_add
yhttps://servbay-fuelphp-test.local/mysql
A través de los pasos anteriores, has creado y ejecutado exitosamente un proyecto FuelPHP utilizando las características de ServBay para gestionar y acceder a tu proyecto mientras te conectas y consultas múltiples bases de datos. Esperamos que este artículo te ayude a empezar rápidamente con FuelPHP y aplicarlo a tus proyectos.