Créer et exécuter un projet Webman
Qu'est-ce que Webman ?
Webman est un framework Web PHP asynchrone haute performance basé sur Workerman, spécialement conçu pour construire des applications Web hautement concurrentes et performantes. Contrairement aux frameworks synchrones traditionnels, Webman utilise la conduite par événements et les E/S non bloquantes asynchrones, ce qui lui permet de gérer un nombre important de requêtes concurrentes de manière efficace. Webman offre une API simple d'utilisation et un mécanisme d'extension flexible, idéal pour construire des applications en temps réel, des services API, etc.
Principales caractéristiques et avantages de Webman
- Haute performance : basé sur la conduite par événements et les E/S non bloquantes asynchrones, capable de gérer un grand nombre de requêtes concurrentes.
- Facilité d'utilisation : propose une API simple et riche en fonctionnalités, permettant aux développeurs de s'y familiariser rapidement.
- Support multi-protocoles : supporte plusieurs protocoles tels que HTTP, WebSocket, convenant à divers scénarios d'application.
- Extension flexible : permet l'extension des fonctionnalités via des plugins et des middlewares.
- Soutien communautaire solide : dispose d'une communauté de développeurs active et de nombreuses ressources documentaires.
Webman aide les développeurs à construire rapidement des applications Web et des services API performants, adaptés à divers scénarios nécessitant une gestion de haute-concurrence.
Créer et exécuter un projet Web simple avec Webman
Dans cet article, nous allons expliquer comment créer et exécuter un projet Web simple en utilisant Webman dans un environnement ServBay. Nous démontrerons comment installer Webman, écrire des routes et du code de contrôleur de base, puis exécuter le projet.
TIP
ServBay recommande aux développeurs de placer le site dans le répertoire /Applications/ServBay/www
pour en faciliter la gestion.
Installation de Webman
Installer Composer
ServBay intègre déjà Composer, inutile de l'installer séparément.
Créer le répertoire du projet
Accédez au répertoire www de ServBay :
bashcd /Applications/ServBay/www
1Installer Webman
Utilisez Composer pour installer Webman :
bashcomposer create-project workerman/webman servbay-webman-app cd servbay-webman-app
1
2Installer les composants nécessaires
Installez la base de données Illuminate, la pagination, les événements et Symfony VarDumper :
bashcomposer require -W illuminate/database illuminate/redis illuminate/pagination illuminate/events symfony/var-dumper
1
Écrire le code du projet Web
Configurer les routes
Ajoutez le code suivant dans le fichier
config/route.php
pour définir les routes de 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
12Créer les contrôleurs
Créez les fichiers
IndexController.php
,CacheController.php
etDatabaseController.php
dans le répertoireapp/controller
et ajoutez le code suivant :Fichier
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
11Fichier
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
25Fichier
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
38Configurer la connexion à la base de données
Configurez les informations de connexion pour MySQL et PostgreSQL dans le fichier
config/database.php
: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
Exécuter le projet Web
Exécutez les commandes suivantes dans le répertoire du projet pour démarrer le projet Webman :
php start.php start
Après le démarrage, vous pouvez accéder aux URL suivantes dans le navigateur :
http://localhost:8787
: Vous verrez la page afficherHello ServBay!
.http://localhost:8787/memcached
: Vous verrez la page afficherHello Memcached!
.http://localhost:8787/redis
: Vous verrez la page afficherHello Redis!
.http://localhost:8787/mysql-add
: Vous verrez la page afficherUser added
et un utilisateur sera ajouté dans la base de données.http://localhost:8787/mysql
: Vous verrez la liste des utilisateurs dans la base de données.http://localhost:8787/pgsql-add
: Vous verrez la page afficherUser added
et un utilisateur sera ajouté dans la base de données.http://localhost:8787/pgsql
: Vous verrez la liste des utilisateurs dans la base de données.
Conclusion
Grâce aux étapes ci-dessus, vous avez réussi à créer et exécuter un projet Webman via ServBay, et à l'utiliser pour gérer et accéder à votre projet tout en vous connectant à diverses bases de données et en effectuant des opérations sur les données. La haute performance et la facilité d'utilisation de Webman en font un choix idéal pour construire des applications Web et des services API hautement concurrentiels et performants. J'espère que cet article vous aidera à prendre en main Webman rapidement et à l'appliquer dans vos projets.