Crear y Ejecutar un Proyecto FuelPHP
¿Qué es FuelPHP?
FuelPHP es un marco PHP flexible y modular, adecuado para desarrollar aplicaciones web modernas. Sigue el patrón de diseño HMVC (Hierarchical Model-View-Controller), proporcionando una amplia gama de características y herramientas que permiten a los desarrolladores construir rápidamente aplicaciones web de alta calidad. FuelPHP es conocido por su flexibilidad, alto rendimiento y facilidad de expansión, siendo el marco preferido por muchos desarrolladores.
Principales características y ventajas de FuelPHP
- Arquitectura HMVC: Soporta el patrón de diseño MVC jerárquico, facilitando la reutilización del código y el desarrollo modular.
- Alto rendimiento: FuelPHP es famoso por su eficiencia y velocidad, capaz de manejar solicitudes concurrentes.
- Fácil de expandir: Ofrece una rica mecánica de extensiones para que los desarrolladores añadan características personalizadas con facilidad.
- Seguridad: Incorpora múltiples funciones de seguridad como validación de entrada, filtrado de salida, protección CSRF, entre otras.
- Fuerte apoyo comunitario: Cuenta con una comunidad de desarrolladores activa y una gran cantidad de extensiones externas.
FuelPHP puede ayudar a los desarrolladores a construir rápidamente aplicaciones web de alto rendimiento y alta calidad, adecuadas para proyectos de cualquier tamaño.
Crear y ejecutar un proyecto FuelPHP con ServBay
En este artículo, usaremos el entorno PHP proporcionado por ServBay para crear y ejecutar un proyecto FuelPHP. Utilizaremos la función 'Hosting' de ServBay para configurar el servidor web y acceder al proyecto mediante una configuración sencilla.
Advertencia: si fuiste usuario de NGINX o Apache
ServBay usa por defecto Caddy como servidor web. Para usuarios que están migrando desde NGINX y Apache a ServBay, hay algunos cambios clave a tener en cuenta:
Configuración de Caddy
ServBay ya tiene Caddy integrado y configurado por defecto. Los desarrolladores solo necesitan usar la función 'Hosting' de ServBay para gestionar los sitios, sin necesidad de modificar manualmente los archivos de configuración de Caddy.
Reglas de Rewrite y .htaccess
En NGINX y Apache, los desarrolladores suelen escribir reglas de Rewrite y archivos .htaccess para manejar la reescritura de URLs y otras configuraciones. Sin embargo, ServBay ya lleva configuradas las reglas de Caddy, por lo que, a menos que haya necesidades específicas, los desarrolladores no necesitarán escribir estas reglas.
Obtener más información
Para más información, consulte Rewrite y htaccess, Cómo migrar un sitio Apache a ServBay, Cómo migrar un sitio NGINX a ServBay.
Crear un proyecto FuelPHP
TIP
ServBay recomienda a los desarrolladores colocar los sitios web en el directorio /Applications/ServBay/www
para facilitar su gestión.
Instalar Composer
ServBay ya viene con Composer preinstalado, por lo que no es necesario instalarlo por separado.
Crear un proyecto FuelPHP
Usa 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
4Entrar en el directorio del proyecto
Entra en el directorio del nuevo proyecto FuelPHP:
bashcd /Applications/ServBay/www/servbay-fuelphp-app
1
Configuración inicial
Configurar la conexión a la base de datos
Configura la 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
Usa la función 'Hosting' de ServBay para acceder al proyecto FuelPHP a través del servidor web. En la configuración de 'Hosting' de ServBay, añade un nuevo host:
- Nombre:
My First FuelPHP Dev Site
- Dominio:
servbay-fuelphp-test.local
- Tipo de sitio web:
PHP
- Versión de PHP: Elige
8.3
- Directorio raíz del sitio web:
/Applications/ServBay/www/servbay-fuelphp-app/public
Para más detalles, consulta Agregar el primer sitio web.
Añadir 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;
class Controller_Welcome extends Controller
{
public function action_index()
{
return Response::forge('Hello ServBay!');
}
public function action_memcached()
{
Cache::set('key', 'Hello Memcached!', 60);
$value = Cache::get('key');
return Response::forge($value);
}
public function action_redis()
{
$redis = \Redis::instance();
$redis->set('key', 'Hello Redis!');
$value = $redis->get('key');
return Response::forge($value);
}
public function action_mysql_add()
{
\DB::insert('users')->set([
'name' => 'ServBay',
'email' => '[email protected]',
])->execute();
return Response::forge('User added');
}
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
Acceder al sitio web
Abre tu navegador y accede a la siguiente URL:
https://servbay-fuelphp-test.local
: verás la salida de la páginaHello ServBay!
.
Ejemplo de base de datos NoSQL
Ejemplo con Memcached
Instalar la extensión de Memcached
En ServBay, la extensión de Memcached ya está preinstalada.
Configurar Memcached
Configura Memcached en el archivo
fuel/app/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
13Agregar rutas
Añade las siguientes rutas en el archivo
fuel/app/config/routes.php
:phpreturn array( 'memcached' => 'welcome/memcached', )
1
2
3Usar Memcached
Usa la caché en el controlador:
phppublic function action_memcached() { Cache::set('key', 'Hello Memcached!', 60); $value = Cache::get('key'); return Response::forge($value); }
1
2
3
4
5
6
7Abre el navegador y accede a: https://servbay-fuelphp-test.local/memcached
Ejemplo con Redis
Instalar la extensión de Redis
En ServBay, la extensión de Redis ya está preinstalada.
Configurar Redis
Configura Redis en el archivo
fuel/app/config/redis.php
:phpreturn [ 'driver' => 'redis', 'redis' => [ 'database' => 'default', ], ];
1
2
3
4
5
6Agregar rutas
Añade las siguientes rutas en el archivo
fuel/app/config/routes.php
:phpreturn array( 'redis' => 'welcome/redis', )
1
2
3Usar Redis
Usa la caché en el controlador:
phppublic function action_redis() { Cache::set('key', 'Hello Redis!', 60); $value = Cache::get('key'); return Response::forge($value); }
1
2
3
4
5
6
7Abre el navegador y accede a: https://servbay-fuelphp-test.local/redis
Ejemplo de base de datos relacional
Crear estructura de base de datos y archivo de migración
Crear archivo de migración
Usa la herramienta oil de FuelPHP para crear el archivo de migración:
bashphp oil g migration create_users_table
1Editar archivo 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: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
Usa la herramienta oil de FuelPHP para ejecutar la migración y crear la tabla en la base de datos:
bashphp oil refine migrate
1
Ejemplo con MySQL
Configurar MySQL
Configura la conexión a 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
9Insertar 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('User added'); }
1
2
3
4
5
6
7
8
9Usar MySQL
Usa MySQL en el controlador para obtener datos de la base de datos:
phppublic function action_mysql() { $users = DB::select()->from('users')->execute()->as_array(); return Response::forge(json_encode($users)); }
1
2
3
4
5
Siguiendo estos pasos, has creado y ejecutado exitosamente un proyecto FuelPHP, usando las características de ServBay para gestionar y acceder a tu proyecto, así como conectarte a varias bases de datos y realizar operaciones con ellas. Espero que este artículo te ayude a empezar rápidamente con FuelPHP y aplicarlo a tus proyectos.