Создание и запуск проекта Webman
Что такое Webman?
Webman — это высокопроизводительный асинхронный веб-фреймворк PHP на основе Workerman, предназначенный для создания высоконагруженных, высокопроизводительных веб-приложений. В отличие от традиционных синхронных блокирующих фреймворков, Webman использует событийно-ориентированный и асинхронный неблокирующий ввод-вывод, что делает его отличным для обработки большого количества одновременных запросов. Webman предоставляет простой и удобный API и гибкий механизм расширений, что делает его идеальным для создания реальных приложений, API-сервисов и других проектов.
Основные особенности и преимущества Webman
- Высокая производительность: благодаря событийному управлению и асинхронному неблокирующему вводу-выводу, способен обрабатывать большое количество одновременных запросов.
- Простота использования: предоставляет простой API и богатые возможности, разработчики могут быстро начать работу.
- Поддержка множества протоколов: поддерживает HTTP, WebSocket и другие протоколы, подходящие для различных сценариев использования.
- Гибкость расширения: возможности расширения функционала через плагины и middleware.
- Сильная поддержка сообществом: активное сообщество разработчиков и богатая документация.
Webman помогает разработчикам быстро создавать высокопроизводительные веб-приложения и API-сервисы, подходящие для различных сценсев с высоким уровнем одновременной обработки.
Создание и запуск простого веб-проекта с Webman
В этой статье мы расскажем, как использовать Webman для создания и запуска простого веб-проекта в среде ServBay. Мы покажем, как установить Webman, написать базовый код маршрутизации и контроллеров, и запустить проект.
TIP
ServBay рекомендует разработчикам размещать сайты в каталоге /Applications/ServBay/www
для удобного управления.
Установка Webman
Установка Composer
ServBay уже включает Composer по умолчанию, отдельная установка не требуется.
Создание каталога проекта
Перейдите в каталог www ServBay:
bashcd /Applications/ServBay/www
1Установка Webman
Используйте Composer для установки Webman:
bashcomposer create-project workerman/webman servbay-webman-app cd servbay-webman-app
1
2Установка необходимых компонентов
Установите Illuminate Database, Pagination, Events и Symfony VarDumper:
bashcomposer require -W illuminate/database illuminate/redis illuminate/pagination illuminate/events symfony/var-dumper
1
Написание кода веб-проекта
Настройка маршрутизации
В файле
config/route.php
добавьте следующий код, чтобы определить основные маршруты: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
12Создание контроллеров
В каталоге
app/controller
создайте файлыIndexController.php
,CacheController.php
иDatabaseController.php
, и добавьте следующий код:Файл
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
11Файл
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
25Файл
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
38Настройка соединения с базой данных
В файле
config/database.php
настройте информацию о соединении с MySQL и 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
Запуск веб-проекта
Запустите следующий команду в каталоге проекта, чтобы запустить проект Webman:
php start.php start
После запуска, вы можете зайти в браузер по следующим URL-адресам:
http://localhost:8787
: вы увидите сообщение 'Hello ServBay!'.http://localhost:8787/memcached
: вы увидите сообщение 'Hello Memcached!'.http://localhost:8787/redis
: вы увидите сообщение 'Hello Redis!'.http://localhost:8787/mysql-add
: вы увидите сообщение 'User added', и пользователь будет добавлен в базу данных.http://localhost:8787/mysql
: вы увидите список пользователей в базе данных.http://localhost:8787/pgsql-add
: вы увидите сообщение 'User added', и пользователь будет добавлен в базу данных.http://localhost:8787/pgsql
: вы увидите список пользователей в базе данных.
Заключение
Следуя этим шагам, вы успешно создали и запустили проект Webman в среде ServBay, используя возможности Webman для управления и доступа к вашему проекту, а также подключили несколько баз данных и получили данные. Высокая производительность и удобство использования Webman делают его идеальным для создания высоконагруженных, высокопроизводительных веб-приложений и API-сервисов. Надеемся, эта статья поможет вам быстро освоиться с Webman и применить его в ваших проектах.