Creazione e esecuzione di un progetto Webman
Cos'è Webman?
Webman è un framework PHP asincrono ad alte prestazioni basato su Workerman, progettato per costruire applicazioni web ad alta concorrenza e alte prestazioni. A differenza dei framework tradizionali bloccanti e sincroni, Webman utilizza I/O non bloccante e guidato da eventi, che lo rende eccezionale nell'elaborazione di un grande numero di richieste concorrenti. Webman offre un'API semplice da usare e un meccanismo di estensione flessibile, ideale per costruire applicazioni in tempo reale, servizi API e altro ancora.
Caratteristiche principali e vantaggi di Webman
- Alte prestazioni: basato su I/O non bloccante e guidato da eventi, in grado di gestire un grande numero di richieste concorrenti.
- Facile da usare: offre un'API semplice e ricca di funzionalità, permettendo agli sviluppatori di iniziare rapidamente.
- Supporto multi-protocollo: supporta vari protocolli come HTTP, WebSocket, ecc., adatto per diversi scenari applicativi.
- Estensione flessibile: può essere esteso attraverso meccanismi di plug-in e middleware.
- Sostegno forte dalla comunità: ha una comunità di sviluppatori attiva e risorse documentarie ricche.
Webman può aiutare gli sviluppatori a costruire rapidamente applicazioni web e servizi API ad alte prestazioni, adatte per scenari che richiedono un'elevata elaborazione concorrente.
Creare e eseguire un progetto Web semplice usando Webman
In questo articolo, introdurremo come usare Webman per creare ed eseguire un semplice progetto web in ambiente ServBay. Dimostreremo come installare Webman, scrivere codice di routing e controller di base, ed eseguire il progetto.
TIP
ServBay consiglia agli sviluppatori di posizionare il sito web nella directory /Applications/ServBay/www
per una gestione più semplice.
Installare Webman
Installare Composer
ServBay viene fornito con Composer preinstallato, quindi non è necessario installarlo separatamente.
Creare la directory del progetto
Entrare nella directory www di ServBay:
bashcd /Applications/ServBay/www
1Installare Webman
Utilizzare Composer per installare Webman:
bashcomposer create-project workerman/webman servbay-webman-app cd servbay-webman-app
1
2Installare i componenti necessari
Installare Illuminate Database, Pagination, Events e Symfony VarDumper:
bashcomposer require -W illuminate/database illuminate/redis illuminate/pagination illuminate/events symfony/var-dumper
1
Scrivere il codice del progetto Web
Configurare il routing
Nel file
config/route.php
aggiungere il seguente codice per definire le route di base: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
12Creare i controller
Nella directory
app/controller
creare i fileIndexController.php
,CacheController.php
eDatabaseController.php
, e aggiungere il seguente codice:File
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
11File
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
25File
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
38Configurare la connessione al database
Nel file
config/database.php
configurare le informazioni di connessione per 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
Eseguire il progetto Web
Nel directory del progetto eseguire il seguente comando per avviare il progetto Webman:
php start.php start
Dopo l'avvio, è possibile accedere ai seguenti URL nel browser:
http://localhost:8787
: vedrai la pagina che mostraHello ServBay!
.http://localhost:8787/memcached
: vedrai la pagina che mostraHello Memcached!
.http://localhost:8787/redis
: vedrai la pagina che mostraHello Redis!
.http://localhost:8787/mysql-add
: vedrai la pagina che mostraUser added
e aggiungerà un utente nel database.http://localhost:8787/mysql
: vedrai la lista degli utenti nel database.http://localhost:8787/pgsql-add
: vedrai la pagina che mostraUser added
e aggiungerà un utente nel database.http://localhost:8787/pgsql
: vedrai la lista degli utenti nel database.
Riassunto
Seguendo i passaggi sopra, hai creato ed eseguito con successo un progetto Webman in ServBay, utilizzando le funzionalità offerte da Webman per gestire e accedere al tuo progetto, collegandoti contemporaneamente a vari database e richiamando i dati. Le alte prestazioni e la facilità d'uso di Webman lo rendono ideale per costruire applicazioni web e servizi API ad alta concorrenza e alte prestazioni. Speriamo che questo articolo ti aiuti a iniziare rapidamente con Webman e ad applicarlo nei tuoi progetti.