Crear y ejecutar un proyecto PHPixie
¿Qué es PHPixie?
PHPixie es un framework de PHP ligero, adecuado para desarrollar rápidamente aplicaciones web de alto rendimiento. Sigue el patrón de diseño HMVC (Hierarchical Model-View-Controller), proporcionando una estructura de código simple y un rendimiento eficiente. PHPixie es conocido por su simplicidad, flexibilidad y alto rendimiento, siendo el framework preferido de muchos desarrolladores.
Principales características y ventajas de PHPixie
- Ligero: El sistema central de PHPixie es muy compacto, contiene solo los componentes necesarios y tiene una carga muy rápida.
- Alto rendimiento: PHPixie es famoso por su rendimiento y velocidad eficientes, capaz de manejar solicitudes de alta concurrencia.
- Fácil de aprender: Ofrece una API simple y fácil de usar junto con una documentación extensa para que los desarrolladores puedan comenzar rápidamente.
- Flexibilidad: Permite a los desarrolladores elegir y usar libremente bibliotecas y complementos de terceros, lo que facilita la extensión y personalización de funciones.
- Soporte comunitario robusto: Cuenta con una comunidad de desarrolladores activa y una gran cantidad de extensiones de terceros.
PHPixie 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 PHPixie usando ServBay
En este artículo, usaremos el entorno PHP proporcionado por ServBay para crear y ejecutar un proyecto PHPixie. Utilizaremos la función 'Host' de ServBay para configurar el servidor web y permitirá el acceso al proyecto a través de una configuración simple.
Atención: Si anteriormente usabas NGINX o Apache
ServBay utiliza Caddy como servidor web de forma predeterminada. Para los usuarios que migran de NGINX y Apache a ServBay, hay algunos puntos clave a tener en cuenta:
Configuración de Caddy
ServBay tiene Caddy integrado, y la configuración predeterminada ya está optimizada y depurada. Los desarrolladores solo necesitan gestionar el sitio a través de la función 'Host' de ServBay, sin necesidad de modificar manualmente el archivo de configuración de Caddy.
Reglas de Rewrite y .htaccess
En NGINX y Apache, los desarrolladores generalmente necesitan escribir sus propias reglas de Rewrite y archivos .htaccess para manejar la reescritura de URL y otras configuraciones. Sin embargo, ServBay ya ha configurado estas reglas para Caddy, por lo que, a menos que haya necesidades especiales, los desarrolladores no necesitan escribir estas reglas por sí mismos.
Saber más
Para obtener más información, consulte Rewrite 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 PHPixie
TIP
ServBay recomienda a los desarrolladores colocar el sitio web en el directorio /Applications/ServBay/www
para facilitar la gestión.
Instalar Composer
ServBay ya viene con Composer preinstalado, por lo que no es necesario instalarlo por separado.
Crear un proyecto PHPixie
Usa Composer para crear un nuevo proyecto PHPixie:
bashcd /Applications/ServBay/www mkdir servbay-phpixie-app cd servbay-phpixie-app composer create-project phpixie/project .
1
2
3
4Entrar en el directorio del proyecto
Entra en el nuevo directorio del proyecto PHPixie:
bashcd /Applications/ServBay/www/servbay-phpixie-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
assets/config/database.php
:phpreturn [ 'default' => [ 'driver' => 'pdo', 'connection' => 'mysql:host=127.0.0.1;dbname=servbay_phpixie_app', 'user' => 'root', 'password' => 'password', 'options' => [] ] ];
1
2
3
4
5
6
7
8
9
Configurar el servidor web
Usa la función 'Host' de ServBay para acceder al proyecto PHPixie a través del servidor web. En la configuración 'Host' de ServBay, añade un nuevo host:
- Nombre:
Mi primer sitio de desarrollo PHPixie
- Dominio:
servbay-phpixie-test.local
- Tipo de sitio web:
PHP
- Versión de PHP: Selecciona
8.3
- Directorio raíz del sitio web:
/Applications/ServBay/www/servbay-phpixie-app/web
Para pasos de configuración detallados, consulta Añadir el primer sitio web.
Añadir código de ejemplo
Añade el siguiente código en el archivo src/App/HTTP/Controller/Home.php
:
namespace App\HTTP\Controller;
use PHPixie\HTTP\Request;
use PHPixie\Template;
class Home extends \PHPixie\Controller
{
protected $template;
public function __construct(Template $template)
{
$this->template = $template;
}
public function action_index(Request $request)
{
return $this->template->render('app:home');
}
public function action_memcached(Request $request)
{
$cache = $this->components->cache();
$cache->set('key', 'Hello Memcached!', 60);
$value = $cache->get('key');
return $this->response()->string($value);
}
public function action_redis(Request $request)
{
$redis = $this->components->redis();
$redis->set('key', 'Hello Redis!');
$value = $redis->get('key');
return $this->response()->string($value);
}
public function action_mysql_add(Request $request)
{
$query = $this->components->database()->query();
$query->insert('users')->data([
'name' => 'ServBay',
'email' => '[email protected]',
])->execute();
return $this->response()->string('User added');
}
public function action_mysql(Request $request)
{
$query = $this->components->database()->query();
$users = $query->select('*')->from('users')->execute()->fetchAll();
return $this->response()->json($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
46
47
48
49
50
51
52
Añade el siguiente código en el archivo assets/templates/app/home.php
:
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Welcome to PHPixie</title>
</head>
<body>
<h1>Welcome to PHPixie</h1>
<p>The page you are looking at is being generated dynamically by PHPixie.</p>
</body>
</html>
2
3
4
5
6
7
8
9
10
11
12
Acceder al sitio web
Abre un navegador y visita la siguiente URL:
https://servbay-phpixie-test.local
: Verás una página que muestraWelcome to PHPixie
.
Ejemplo de base de datos NoSQL
Ejemplo de Memcached
Instalar la extensión de Memcached
En ServBay, la extensión de Memcached ya está preinstalada, por lo que no se necesita instalación adicional.
Configurar Memcached
Configura la información de conexión de Memcached en el archivo
assets/config/cache.php
:phpreturn [ 'default' => [ 'driver' => 'memcached', 'servers' => [ [ 'host' => '127.0.0.1', 'port' => 11211, 'weight' => 100, ], ], ], ];
1
2
3
4
5
6
7
8
9
10
11
12Usar Memcached
Usa la caché en el controlador:
phppublic function action_memcached(Request $request) { $cache = $this->components->cache(); $cache->set('key', 'Hello Memcached!', 60); $value = $cache->get('key'); return $this->response()->string($value); }
1
2
3
4
5
6
7
Ejemplo de Redis
Instalar la extensión de Redis
En ServBay, la extensión de Redis ya está preinstalada, por lo que no se necesita instalación adicional.
Configurar Redis
Configura la información de conexión de Redis en el archivo
assets/config/redis.php
:phpreturn [ 'default' => [ 'hostname' => '127.0.0.1', 'port' => 6379, 'timeout' => 0, 'database' => 0, ], ];
1
2
3
4
5
6
7
8Usar Redis
Usa la caché en el controlador:
phppublic function action_redis(Request $request) { $redis = $this->components->redis(); $redis->set('key', 'Hello Redis!'); $value = $redis->get('key'); return $this->response()->string($value); }
1
2
3
4
5
6
7
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 PHPixie para crear un archivo de migración:
bashphp pixie generate:migration create_users_table
1Editar archivo de migración
Encuentra el nuevo archivo de migración en el directorio
assets/migrations
y edítalo para definir la estructura de la tabla:phppublic function up() { $this->schema->create('users', function($table) { $table->increments('id'); $table->string('name'); $table->string('email')->unique(); $table->timestamps(); }); } public function down() { $this->schema->drop('users'); }
1
2
3
4
5
6
7
8
9
10
11
12
13
14Ejecutar migración
Usa la herramienta CLI de PHPixie para ejecutar la migración y crear la tabla de la base de datos:
bashphp pixie migrate
1
Ejemplo de MySQL
Configurar MySQL
Configura la información de conexión a MySQL en el archivo
assets/config/database.php
:phpreturn [ 'default' => [ 'driver' => 'pdo', 'connection' => 'mysql:host=127.0.0.1;dbname=servbay_phpixie_app', 'user' => 'root', 'password' => 'password', 'options' => [] ] ];
1
2
3
4
5
6
7
8
9Escribir datos del usuario
Escribe los datos del usuario en el controlador:
phppublic function action_mysql_add(Request $request) { $query = $this->components->database()->query(); $query->insert('users')->data([ 'name' => 'ServBay', 'email' => '[email protected]', ])->execute(); return $this->response()->string('User added'); }
1
2
3
4
5
6
7
8
9Usar MySQL
Llama a la base de datos en el controlador:
phppublic function action_mysql(Request $request) { $query = $this->components->database()->query(); $users = $query->select('*')->from('users')->execute()->fetchAll(); return $this->response()->json($users); }
1
2
3
4
5
6
Ejemplo de PostgreSQL
Configurar PostgreSQL
Configura la información de conexión a PostgreSQL en el archivo
assets/config/database.php
:phpreturn [ 'default' => [ 'driver' => 'pdo', 'connection' => 'pgsql:host=127.0.0.1;dbname=servbay_phpixie_app', 'user' => 'root', 'password' => 'password', 'options' => [] ] ];
1
2
3
4
5
6
7
8
9Escribir datos del usuario
Escribe los datos del usuario en el controlador:
phppublic function action_pgsql_add(Request $request) { $query = $this->components->database()->query(); $query->insert('users')->data([ 'name' => 'ServBay', 'email' => '[email protected]', ])->execute(); return $this->response()->string('User added'); }
1
2
3
4
5
6
7
8
9Usar PostgreSQL
Llama a la base de datos en el controlador:
phppublic function action_pgsql(Request $request) { $query = $this->components->database()->query(); $users = $query->select('*')->from('users')->execute()->fetchAll(); return $this->response()->json($users); }
1
2
3
4
5
6
Siguiendo estos pasos, habrás creado y ejecutado con éxito un proyecto PHPixie y utilizado las funcionalidades proporcionadas por ServBay para gestionar y acceder a tu proyecto, conectándote a múltiples bases de datos y llamando a los datos. Esperamos que este artículo te ayude a empezar con PHPixie y a aplicarlo en tus proyectos.