Crear y ejecutar un proyecto Webman
¿Qué es Webman?
Webman es un marco web PHP asíncrono de alto rendimiento basado en Workerman, diseñado para construir aplicaciones web de alta concurrencia y alto rendimiento. A diferencia de los marcos síncronos tradicionales, Webman adopta E/S no bloqueante asincrónica y orientada a eventos, lo que lo hace destacar al manejar una gran cantidad de solicitudes concurrentes. Webman ofrece una API simple y fácil de usar y un mecanismo de extensión flexible, siendo ideal para construir aplicaciones en tiempo real, servicios API, entre otros.
Principales características y ventajas de Webman
- Alto rendimiento: basada en E/S no bloqueante asincrónica y orientada a eventos, puede manejar una gran cantidad de solicitudes concurrentes.
- Fácil de usar: ofrece una API sencilla y muchas funciones, lo que permite a los desarrolladores aprender rápidamente.
- Soporte para múltiples protocolos: compatible con HTTP, WebSocket y otros protocolos, adecuado para diversos escenarios de aplicación.
- Extensión flexible: se pueden agregar funcionalidades mediante plugins y middleware.
- Fuerte soporte comunitario: cuenta con una comunidad activa de desarrolladores y recursos documentales abundantes.
Webman puede ayudar a los desarrolladores a construir rápidamente aplicaciones web y servicios API de alto rendimiento, adecuándose a escenarios que requieren alto manejo de concurrencias.
Crear y ejecutar un sencillo proyecto web con Webman
En este artículo, explicaremos cómo crear y ejecutar un sencillo proyecto web usando Webman en el entorno de ServBay. Mostraremos cómo instalar Webman, escribir código básico de rutas y controladores, y ejecutar el proyecto.
TIP
ServBay sugiere a los desarrolladores colocar los sitios web en el directorio /Applications/ServBay/www
para facilitar la gestión.
Instalar Webman
Instalar Composer
ServBay viene con Composer preinstalado, por lo que no es necesario instalarlo por separado.
Crear el directorio del proyecto
Entrar en el directorio www de ServBay:
bashcd /Applications/ServBay/www
1Instalar Webman
Usar Composer para instalar Webman:
bashcomposer create-project workerman/webman servbay-webman-app cd servbay-webman-app
1
2Instalar los componentes necesarios
Instalar la base de datos de Illuminate, paginación, eventos y Symfony VarDumper:
bashcomposer require -W illuminate/database illuminate/redis illuminate/pagination illuminate/events symfony/var-dumper
1
Escribir el código del proyecto web
Configurar rutas
En el archivo
config/route.php
añadir el siguiente código para definir las rutas básicas:phpuse Webman\Route; use app\controller\IndexController; use app\controller\CacheController; use app\controller\DatabaseController; Route::any('/', [IndexController::class, 'index']); Route::any('/memcached', [CacheController::class, 'memcached']); Route::any('/redis', [CacheController::class, 'redis']); Route::any('/mysql-add', [DatabaseController::class, 'mysqlAdd']); Route::any('/mysql', [DatabaseController::class, 'mysqlGet']); Route::any('/pgsql-add', [DatabaseController::class, 'pgsqlAdd']); Route::any('/pgsql', [DatabaseController::class, 'pgsqlGet']);
1
2
3
4
5
6
7
8
9
10
11
12Crear controladores
En el directorio
app/controller
crear los archivosIndexController.php
,CacheController.php
yDatabaseController.php
, y añadir el siguiente código:Archivo
IndexController.php
:phpnamespace app\controller; use support\Request; class IndexController { public function index(Request $request) { return response('¡Hola ServBay!'); } }
1
2
3
4
5
6
7
8
9
10
11Archivo
CacheController.php
:phpnamespace app\controller; use support\Request; use support\Response; use Memcached; use support\Redis; class CacheController { public function memcached(Request $request): Response { $memcached = new Memcached(); $memcached->addServer('127.0.0.1', 11211); $memcached->set('key', '¡Hola Memcached!', 60); $value = $memcached->get('key'); return response($value); } public function redis(Request $request): Response { Redis::set('key', '¡Hola Redis!'); $value = Redis::get('key'); return response($value); } }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25Archivo
DatabaseController.php
:phpnamespace app\controller; use support\Request; use support\Response; use support\Db; class DatabaseController { public function mysqlAdd(Request $request): Response { DB::connection('mysql')->table('users')->insert([ 'name' => 'Webman', 'email' => '[email protected]', ]); return response('Usuario agregado'); } public function mysqlGet(Request $request): Response { $users = DB::connection('mysql')->table('users')->get(); return response(json_encode($users)); } public function pgsqlAdd(Request $request): Response { DB::connection('pgsql')->table('users')->insert([ 'name' => 'Webman', 'email' => '[email protected]', ]); return response('Usuario agregado'); } public function pgsqlGet(Request $request): Response { $users = DB::connection('pgsql')->table('users')->get(); return response(json_encode($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
32
33
34
35
36
37
38Configurar la conexión a la base de datos
En el archivo
config/database.php
configurar la información de conexión de MySQL y PostgreSQL:phpreturn [ 'default' => 'mysql', 'connections' => [ 'mysql' => [ 'driver' => 'mysql', 'host' => '127.0.0.1', 'port' => 3306, 'database' => 'webman_app', 'username' => 'root', 'password' => 'password', 'charset' => 'utf8mb4', 'collation' => 'utf8mb4_unicode_ci', 'prefix' => '', 'strict' => true, 'engine' => null, ], 'pgsql' => [ 'driver' => 'pgsql', 'host' => '127.0.0.1', 'port' => 5432, 'database' => 'webman_app', 'username' => 'root', 'password' => 'password', 'charset' => 'utf8', 'prefix' => '', 'schema' => 'public', 'sslmode' => 'prefer', ], ], ];
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
Ejecutar el proyecto web
En el directorio del proyecto ejecutar el siguiente comando para iniciar el proyecto Webman:
php start.php start
Después de iniciar, puede acceder a las siguientes URL en su navegador:
http://localhost:8787
: Verá que la página muestra¡Hola ServBay!
.http://localhost:8787/memcached
: Verá que la página muestra¡Hola Memcached!
.http://localhost:8787/redis
: Verá que la página muestra¡Hola Redis!
.http://localhost:8787/mysql-add
: Verá que la página muestraUsuario agregado
y se añade un usuario a la base de datos.http://localhost:8787/mysql
: Verá la lista de usuarios en la base de datos.http://localhost:8787/pgsql-add
: Verá que la página muestraUsuario agregado
y se añade un usuario a la base de datos.http://localhost:8787/pgsql
: Verá la lista de usuarios en la base de datos.
Resumen
Mediante los pasos anteriores, se ha creado y ejecutado exitosamente un proyecto Webman en ServBay, usando las funcionalidades proporcionadas por Webman para gestionar y acceder a su proyecto, mientras se conectan con distintas bases de datos y se realizan llamadas a datos. La alta rendimiento y facilidad de uso de Webman lo hacen muy adecuado para construir aplicaciones web de alta concurrencia y servicios API. Esperamos que este artículo le haya ayudado a comenzar rápidamente con Webman y a aplicarlo en sus proyectos.