摘要
webman 是一款基於 workerman 開發的高性能 HTTP 服務框架。webman 用於替代傳統的 php-fpm 架構,提供超高性能可擴展的 HTTP 服務。你可以用 webman 開發網站,也可以開發 HTTP 接口或者微服務。
除此之外,webman 還支持自定義進程,可以做 workerman 能做的任何事情,例如 websocket 服務、物聯網、遊戲、TCP 服務、UDP 服務、unix socket 服務等等。
官網&文檔:https://www.workerman.net/doc/webman/README.html
安裝
PHP >= 7.2
Composer >= 2.0
composer create-project workerman/webman
運行
以 Windows 系統為例:
cd webman
php windows.php
運行後,在你的本地服務器 8787 端口就可以訪問。
http://localhost:8787
代碼結構
其結構仍然是 MVC 框架結構。
一個簡單的示例
通過一個簡單的 控制器+模型+數據庫配置 來實現一個數據查詢示例。
UserController.php
用户控制器:app\controller\UserController.php
<?php
namespace app\controller;
use support\Request;
use app\model\User;
class UserController
{
public function getUser(Request $request)
{
$default_uid = 29;
$uid = $request->get('uid', $default_uid);
$name = User::getUsernameByUid($uid); // 調用模型中的方法
return json(['code' => 0, 'msg' => 'ok', 'name' => $name]);
}
}
User.php
用户查詢模型:app\model\User.php
<?php
namespace app\model;
use support\Db;
class User
{
public static function getUsernameByUid($uid)
{
return Db::table('users')->where('uid', $uid)->value('username');
}
}
數據庫配置
webman 數據庫默認採用的是 illuminate/database,也就是 laravel 的數據庫,用法與 laravel 相同。先安裝一下數據庫:
composer require -W illuminate/database illuminate/pagination illuminate/events symfony/var-dumper
打開 config/database.php 配置數據庫。
return [
// 默認數據庫
'default' => 'mysql',
// 各種數據庫配置
'connections' => [
'mysql' => [
'driver' => 'mysql',
'host' => '127.0.0.1',
'port' => 3306,
'database' => 'test',
'username' => 'root',
'password' => '',
'unix_socket' => '',
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
'strict' => true,
'engine' => null,
'options' => [
\PDO::ATTR_TIMEOUT => 3
]
],
],
];
運行
在瀏覽器訪問
http://localhost:8787/user/getUser
即可實現一個簡單的數據庫查詢。