Criar e executar um projeto Webman
O que é Webman?
Webman é um framework web assíncrono PHP de alto desempenho baseado no Workerman, projetado para construir aplicações web de alta concorrência e alto desempenho. Diferente dos frameworks tradicionais síncronos e bloqueantes, o Webman utiliza programação dirigida a eventos e I/O não bloqueante assíncrono, tornando-se excelente ao lidar com um grande volume de solicitações concorrentes. O Webman oferece uma API simples e mecanismos de extensão flexíveis, sendo ideal para construir aplicações em tempo real, serviços de API, entre outros.
Principais características e vantagens do Webman
- Alto desempenho: Baseado em programação dirigida a eventos e I/O não bloqueante assíncrono, capaz de processar um grande volume de solicitações concorrentes.
- Fácil de usar: Oferece uma API simples e funcionalidades ricas, permitindo que os desenvolvedores iniciem rapidamente.
- Suporte a múltiplos protocolos: Suporta HTTP, WebSocket e outros protocolos, adequado para diversos cenários de aplicação.
- Extensão flexível: Permite a extensão das funcionalidades através de plugins e mecanismos de middleware.
- Forte apoio da comunidade: Possui uma comunidade ativa de desenvolvedores e recursos de documentação abundantes.
Webman pode ajudar desenvolvedores a construir rapidamente aplicações web e serviços de API de alto desempenho, adequado para cenários que requerem alto processamento concorrente.
Criar e executar um projeto Webman simples
Neste artigo, vamos demonstrar como criar e executar um projeto web simples usando o Webman no ambiente ServBay. Vamos mostrar como instalar o Webman, escrever código básico de roteamento e controlador, e executar o projeto.
::: dica O ServBay recomenda que os desenvolvedores coloquem os sites no diretório/Applications/ServBay/www
para facilitar a gestão. :::
Instalar o Webman
Instalar o Composer
O ServBay já vem com o Composer instalado, não sendo necessário realizar uma instalação separada.
Criar o diretório do projeto
Entre no diretório www do ServBay:
bashcd /Applications/ServBay/www
1Instalar o Webman
Use o Composer para instalar o Webman:
bashcomposer create-project workerman/webman servbay-webman-app cd servbay-webman-app
1
2Instalar componentes necessários
Instale o banco de dados Illuminate, paginação, eventos e Symfony VarDumper:
bashcomposer require -W illuminate/database illuminate/redis illuminate/pagination illuminate/events symfony/var-dumper
1
Escrever código para o projeto Web
Configurar rotas
No arquivo
config/route.php
, adicione o seguinte código para definir rotas 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
12Criar controladores
No diretório
app/controller
, crie os arquivosIndexController.php
,CacheController.php
eDatabaseController.php
, e adicione o seguinte código:Arquivo
IndexController.php
:phpnamespace app\controller; use support\Request; class IndexController { public function index(Request $request) { return response('Hello ServBay!'); } }
1
2
3
4
5
6
7
8
9
10
11Arquivo
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', 'Hello Memcached!', 60); $value = $memcached->get('key'); return response($value); } public function redis(Request $request): Response { Redis::set('key', 'Hello 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
25Arquivo
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('User added'); } 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('User added'); } 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 a conexão com o banco de dados
No arquivo
config/database.php
, configure as informações de conexão para MySQL e 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
Executar o projeto Web
No diretório do projeto, execute o seguinte comando para iniciar o projeto Webman:
php start.php start
Após iniciar, você pode acessar as seguintes URLs no navegador:
http://localhost:8787
: Você verá a mensagemHello ServBay!
.http://localhost:8787/memcached
: Você verá a mensagemHello Memcached!
.http://localhost:8787/redis
: Você verá a mensagemHello Redis!
.http://localhost:8787/mysql-add
: Você verá a mensagemUser added
, e um usuário será adicionado ao banco de dados.http://localhost:8787/mysql
: Você verá a lista de usuários no banco de dados.http://localhost:8787/pgsql-add
: Você verá a mensagemUser added
, e um usuário será adicionado ao banco de dados.http://localhost:8787/pgsql
: Você verá a lista de usuários no banco de dados.
Conclusão
Seguindo os passos acima, você criou e executou com sucesso um projeto Webman através do ServBay, utilizando as funcionalidades do Webman para gerenciar e acessar seu projeto, bem como para conectar e consultar múltiplos bancos de dados. O alto desempenho e a facilidade de uso do Webman o tornam ideal para construir aplicações web e serviços de API de alta concorrência e alto desempenho. Esperamos que este artigo ajude você a começar rapidamente com o Webman e a aplicá-lo em seus projetos.