命令行
Webman 命令行组件
安装
composer require webman/console
注意
以下命令是webman/consolev2.2及以上版本的说明,如果你的 console 缺少某些功能,请及时更新。
目录
代码生成
- make:controller - 生成控制器类
- make:model - 从数据库表生成模型类
- make:crud - 生成完整 CRUD (模型 + 控制器 + 验证器)
- make:middleware - 生成中间件类
- make:command - 生成控制台命令类
- make:bootstrap - 生成启动初始化类
- make:process - 生成自定义进程类
构建和部署
- build:phar - 将项目打包为 PHAR 归档文件
- build:bin - 将项目打包为独立二进制文件
- install - 运行 Webman 安装脚本
实用工具命令
- version - 显示 Webman 框架版本
- fix-disable-functions - 修复 php.ini 中的禁用函数
- route:list - 显示所有注册的路由
应用插件管理 (app-plugin:*)
- app-plugin:create - 创建新应用插件
- app-plugin:install - 安装应用插件
- app-plugin:uninstall - 卸载应用插件
- app-plugin:update - 更新应用插件
- app-plugin:zip - 将应用插件打包为 ZIP
插件管理 (plugin:*)
- plugin:create - 创建新 Webman 插件
- plugin:install - 安装 Webman 插件
- plugin:uninstall - 卸载 Webman 插件
- plugin:enable - 启用 Webman 插件
- plugin:disable - 禁用 Webman 插件
- plugin:export - 导出插件源代码
服务管理
- start - 启动 Webman 工作进程
- stop - 停止 Webman 工作进程
- restart - 重启 Webman 工作进程
- reload - 无停机重载代码
- status - 查看工作进程状态
- connections - 获取工作进程连接信息
代码生成
make:controller
生成控制器类。
用法:
php webman make:controller < 名称 >
参数:
| 参数 | 必需 | 描述 |
|---|---|---|
名称 |
是 | 控制器名称(不带后缀) |
选项:
| 选项 | 快捷方式 | 描述 |
|---|---|---|
--plugin |
-p |
在对应插件目录生成控制器 |
--path |
-P |
自定义控制器路径 |
--force |
-f |
如果文件存在则覆盖 |
--no-suffix |
不追加 "Controller" 后缀 |
示例:
# 在 app/controller 中创建 UserController
php webman make:controller User
# 在插件中创建
php webman make:controller AdminUser -p admin
# 自定义路径
php webman make:controller User -P app/api/controller
# 覆盖现有文件
php webman make:controller User -f
# 创建时不带 "Controller" 后缀
php webman make:controller UserHandler --no-suffix
生成的文件结构:
<?php
namespace app\controller;
use support\Request;
class UserController
{public function index(Request $request)
{return response('hello user');
}
}
说明:
- 控制器默认放在
app/controller/目录 - 自动追加配置的控制器后缀
- 如果文件存在会提示是否覆盖(下同)
make:model
从数据库表生成模型类,支持 Laravel ORM 与 ThinkORM。
用法:
php webman make:model [名称]
参数:
| 参数 | 必需 | 描述 |
|---|---|---|
名称 |
否 | 模型类名,交互模式下可省略 |
选项:
| 选项 | 快捷方式 | 描述 |
|---|---|---|
--plugin |
-p |
在对应插件目录生成模型 |
--path |
-P |
目标目录(相对项目根路径) |
--table |
-t |
指定表名,表名不符合约定时建议显式指定 |
--orm |
-o |
选择 ORM:laravel 或 thinkorm |
--database |
-d |
指定数据库连接名 |
--force |
-f |
覆盖已存在文件 |
路径说明:
- 默认:
app/model/(主应用)或plugin/< 插件 >/app/model/(插件) --path为相对项目根路径,如plugin/admin/app/model- 同时使用
--plugin与--path时,两者必须指向同一目录
示例:
# 在 app/model 中创建 User 模型
php webman make:model User
# 指定表名和 ORM
php webman make:model User -t wa_users -o laravel
# 在插件中创建
php webman make:model AdminUser -p admin
# 自定义路径
php webman make:model User -P plugin/admin/app/model
交互模式: 不传名称时进入交互流程:选表 → 输入模型名 → 输入路径。支持:回车查看更多、0 创建空模型、/ 关键字 过滤表。
生成的文件结构:
<?php
namespace app\model;
use support\Model;
/**
* @property integer $id (主键)
* @property string $name
*/
class User extends Model
{
protected $connection = 'mysql';
protected $table = 'users';
protected $primaryKey = 'id';
public $timestamps = true;
}
根据表结构自动生成 @property 注释。支持 MySQL、PostgreSQL。
make:crud
根据数据库表一次性生成模型、控制器和验证器,形成完整 CRUD 能力。
用法:
php webman make:crud
选项:
| 选项 | 快捷方式 | 描述 |
|---|---|---|
--table |
-t |
指定表名 |
--model |
-m |
模型类名 |
--model-path |
-M |
模型目录(相对项目根) |
--controller |
-c |
控制器类名 |
--controller-path |
-C |
控制器目录 |
--validator |
验证器类名(依赖webman/validation) |
|
--validator-path |
验证器目录(依赖webman/validation) |
|
--plugin |
-p |
在对应插件目录生成相关文件 |
--orm |
-o |
ORM:laravel 或 thinkorm |
--database |
-d |
数据库连接名 |
--force |
-f |
覆盖已存在文件 |
--no-validator |
不生成验证器 | |
--no-interaction |
-n |
非交互模式,使用默认值 |
执行流程: 未指定 --table 时进入交互选表;模型名默认由表名推断;控制器名默认由模型名 + 控制器后缀;验证器名默认由控制器名去掉后缀 + Validator。各路径默认:模型 app/model/,控制器 app/controller/,验证器 app/validation/;插件下为 plugin/< 插件 >/app/ 对应子目录。
示例:
# 交互式生成(选表后逐步确认)
php webman make:crud
# 指定表名
php webman make:crud --table=users
# 指定表名和插件
php webman make:crud --table=users --plugin=admin
# 指定各路径
php webman make:crud --table=users --model-path=app/model --controller-path=app/controller
# 不生成验证器
php webman make:crud --table=users --no-validator
# 非交互 + 覆盖
php webman make:crud --table=users --no-interaction --force
生成的文件结构:
模型(app/model/User.php):
<?php
namespace app\model;
use support\Model;
class User extends Model
{
protected $connection = 'mysql';
protected $table = 'users';
protected $primaryKey = 'id';
}
控制器(app/controller/UserController.php):
<?php
namespace app\controller;
use support\Request;
use support\Response;
use app\model\User;
use app\validation\UserValidator;
use support\validation\annotation\Validate;
class UserController
{#[Validate(validator: UserValidator::class, scene: 'create', in: ['body'])]
public function create(Request $request): Response
{$data = $request->post();
$model = new User();
foreach ($data as $key => $value) {$model->setAttribute($key, $value);
}
$model->save();
return json(['code' => 0, 'msg' => 'ok', 'data' => $model]);
}
#[Validate(validator: UserValidator::class, scene: 'update', in: ['body'])]
public function update(Request $request): Response
{if (!$model = User::find($request->post('id'))) {return json(['code' => 1, 'msg' => 'not found']);
}
$data = $request->post();
unset($data['id']);
foreach ($data as $key => $value) {$model->setAttribute($key, $value);
}
$model->save();
return json(['code' => 0, 'msg' => 'ok', 'data' => $model]);
}
#[Validate(validator: UserValidator::class, scene: 'delete', in: ['body'])]
public function delete(Request $request): Response
{if (!$model = User::find($request->post('id'))) {return json(['code' => 1, 'msg' => 'not found']);
}
$model->delete();
return json(['code' => 0, 'msg' => 'ok']);
}
#[Validate(validator: UserValidator::class, scene: 'detail')]
public function detail(Request $request): Response
{if (!$model = User::find($request->input('id'))) {return json(['code' => 1, 'msg' => 'not found']);
}
return json(['code' => 0, 'msg' => 'ok', 'data' => $model]);
}
}
验证器(app/validation/UserValidator.php):
<?php
declare(strict_types=1);
namespace app\validation;
use support\validation\Validator;
class UserValidator extends Validator
{
protected array $rules = [
'id' => 'required|integer|min:0',
'username' => 'required|string|max:32'
];
protected array $messages = [];
protected array $attributes = [
'id' => '主键',
'username' => '用户名'
];
protected array $scenes = ['create' => ['username', 'nickname'],
'update' => ['id', 'username'],
'delete' => ['id'],
'detail' => ['id'],
];
}
说明:
- 如果没安装或没启用
webman/validation则自动跳过验证器生成(安装方法composer require webman/validation)。 - 验证器的
attributes根据数据库字段注释自动生成,无注释则不生成attributes。 - 验证器错误信息支持多语言,语言根据
config('translation.locale')自动选择。
make:middleware
生成中间件类,并自动注册到 config/middleware.php(插件则为 plugin/< 插件 >/config/middleware.php)。
用法:
php webman make:middleware < 名称 >
参数:
| 参数 | 必需 | 描述 |
|---|---|---|
名称 |
是 | 中间件名称 |
选项:
| 选项 | 快捷方式 | 描述 |
|---|---|---|
--plugin |
-p |
在对应插件目录生成中间件 |
--path |
-P |
目标目录(相对项目根路径) |
--force |
-f |
覆盖已存在文件 |
示例:
# 在 app/middleware 中创建 Auth 中间件
php webman make:middleware Auth
# 在插件中创建
php webman make:middleware Auth -p admin
# 自定义路径
php webman make:middleware Auth -P plugin/admin/app/middleware
生成的文件结构:
<?php
namespace app\middleware;
use Webman\MiddlewareInterface;
use Webman\Http\Response;
use Webman\Http\Request;
class Auth implements MiddlewareInterface
{public function process(Request $request, callable $handler) : Response
{return $handler($request);
}
}
说明:
- 默认放在
app/middleware/目录 - 创建后会自动将类名追加到对应 middleware 配置文件中自动启用
make:command
生成控制台命令类。
用法:
php webman make:command < 命令名 >
参数:
| 参数 | 必需 | 描述 |
|---|---|---|
命令名 |
是 | 命令名称,格式如 group:action(如 user:list) |
选项:
| 选项 | 快捷方式 | 描述 |
|---|---|---|
--plugin |
-p |
在对应插件目录生成命令 |
--path |
-P |
目标目录(相对项目根路径) |
--force |
-f |
覆盖已存在文件 |
示例:
# 在 app/command 中创建 user:list 命令
php webman make:command user:list
# 在插件中创建
php webman make:command user:list -p admin
# 自定义路径
php webman make:command user:list -P plugin/admin/app/command
# 覆盖现有文件
php webman make:command user:list -f
生成的文件结构:
<?php
namespace app\command;
use Symfony\Component\Console\Command\Command;
use Symfony\Component\Console\Attribute\AsCommand;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Output\OutputInterface;
#[AsCommand('user:list', 'user list')]
class UserList extends Command
{protected function configure(): void
{ }
protected function execute(InputInterface $input, OutputInterface $output): int
{$output->writeln('<info>Hello</info> <comment>' . $this->getName() . '</comment>');
return self::SUCCESS;
}
}
说明:
- 默认放在
app/command/目录
make:bootstrap
生成启动初始化类(Bootstrap),进程启动时会自动调用类的 start 方法,一般用于在进程启动时做一些全局初始化操作。
用法:
php webman make:bootstrap < 名称 >
参数:
| 参数 | 必需 | 描述 |
|---|---|---|
名称 |
是 | Bootstrap 类名 |
选项:
| 选项 | 快捷方式 | 描述 |
|---|---|---|
--plugin |
-p |
在对应插件目录生成 |
--path |
-P |
目标目录(相对项目根路径) |
--force |
-f |
覆盖已存在文件 |
示例:
# 在 app/bootstrap 中创建 MyBootstrap
php webman make:bootstrap MyBootstrap
# 创建但不自动启用
php webman make:bootstrap MyBootstrap no
# 在插件中创建
php webman make:bootstrap MyBootstrap -p admin
# 自定义路径
php webman make:bootstrap MyBootstrap -P plugin/admin/app/bootstrap
# 覆盖现有文件
php webman make:bootstrap MyBootstrap -f
生成的文件结构:
<?php
namespace app\bootstrap;
use Webman\Bootstrap;
class MyBootstrap implements Bootstrap
{public static function start($worker)
{
$is_console = !$worker;
if ($is_console) {return;}
// ...
}
}
说明:
- 默认放在
app/bootstrap/目录 - 启用时会将类追加到
config/bootstrap.php(插件为plugin/< 插件 >/config/bootstrap.php)
make:process
生成自定义进程类,并写入 config/process.php 配置自动启动。
用法:
php webman make:process < 名称 >
参数:
| 参数 | 必需 | 描述 |
|---|---|---|
名称 |
是 | 进程类名(如 MyTcp、MyWebsocket) |
选项:
| 选项 | 快捷方式 | 描述 |
|---|---|---|
--plugin |
-p |
在对应插件目录生成 |
--path |
-P |
目标目录(相对项目根路径) |
--force |
-f |
覆盖已存在文件 |
示例:
# 在 app/process 中创建
php webman make:process MyTcp
# 在插件中创建
php webman make:process MyProcess -p admin
# 自定义路径
php webman make:process MyProcess -P plugin/admin/app/process
# 覆盖现有文件
php webman make:process MyProcess -f
交互流程: 执行后会依次询问:是否监听端口 → 协议类型(websocket/http/tcp/udp/unixsocket)→ 监听地址(IP+ 端口或 unix socket 路径)→ 进程数量。HTTP 协议还会询问使用内置模式或自定义模式。
生成的文件结构:
非监听进程(仅 onWorkerStart):
<?php
namespace app\process;
use Workerman\Worker;
class MyProcess
{public function onWorkerStart(Worker $worker)
{// TODO: Write your business logic here.}
}
TCP/WebSocket 等监听进程会生成对应的 onConnect、onMessage、onClose 等回调模板。
说明:
- 默认放在
app/process/目录,进程配置写入config/process.php - 配置键为类名的 snake_case,若已存在则失败
- HTTP 内置模式复用
app\process\Http进程文件,不生成新文件 - 支持协议:websocket、http、tcp、udp、unixsocket
构建和部署
build:phar
将项目打包为 PHAR 归档文件,便于分发和部署。
用法:
php webman build:phar
启动:
进入 build 目录运行
php webman.phar start
注意事项
-
打包后的项目不支持 reload,更新代码需要 restart 重启
-
为了避免打包文件尺寸过大占用过多内存,可以设置 config/plugin/webman/console/app.php 里的 exclude_pattern exclude_files 选项将排除不必要的文件。
-
运行 webman.phar 后会在 webman.phar 所在目录生成 runtime 目录,用于存放日志等临时文件。
-
如果你的项目里使用了.env 文件,需要将.env 文件放在 webman.phar 所在目录。
-
注意 webman.phar 不支持在 windows 下开启自定义进程
-
切勿将用户上传的文件存储在 phar 包中,因为以 phar:// 协议操作用户上传的文件是非常危险的(phar 反序列化漏洞)。用户上传的文件必须单独存储在 phar 包之外的磁盘中,参见下面。
-
如果你的业务需要上传文件到 public 目录,需要将 public 目录独立出来放在 webman.phar 所在目录,这时候需要配置 config/app.php。
'public_path' => base_path(false) . DIRECTORY_SEPARATOR . 'public',业务可以使用助手函数 public_path($ 文件相对位置)找到实际的 public 目录位置。
build:bin
将项目打包为独立二进制文件,内含 PHP 运行时,无需目标环境安装 PHP。
用法:
php webman build:bin [版本]
参数:
| 参数 | 必需 | 描述 |
|---|---|---|
版本 |
否 | PHP 版本号(如 8.1、8.2),默认当前 PHP 版本,最低 8.1 |
示例:
# 使用当前 PHP 版本
php webman build:bin
# 指定 PHP 8.2
php webman build:bin 8.2
启动:
进入 build 目录运行
./webman.bin start
注意事项:
- 强烈建议本地 php 版本和打包版本一致,例如本地是 php8.1,打包也用 php8.1,避免出现兼容问题
- 打包会下载 php8 的源码,但是并不会本地安装,不会影响本地 php 环境
- webman.bin 目前只支持在 x86_64 架构的 linux 系统运行,不支持在 mac 系统运行
- 打包后的项目不支持 reload,更新代码需要 restart 重启
- 默认不打包 env 文件(config/plugin/webman/console/app.php 中 exclude_files 控制),所以启动时 env 文件应该放置与 webman.bin 相同目录下
- 运行过程中会在 webman.bin 所在目录生成 runtime 目录,用于存放日志文件
- 目前 webman.bin 不会读取外部 php.ini 文件,如需要自定义 php.ini,请在 /config/plugin/webman/console/app.php 文件 custom_ini 中设置
- 有些文件不需要打包,可以设置 config/plugin/webman/console/app.php 排除掉,避免打包后的文件过大
- 二进制打包不支持使用 swoole 协程
- 切勿将用户上传的文件存储在二进制包中,因为以 phar:// 协议操作用户上传的文件是非常危险的(phar 反序列化漏洞)。用户上传的文件必须单独存储在包之外的磁盘中。
- 如果你的业务需要上传文件到 public 目录,需要将 public 目录独立出来放在 webman.bin 所在目录,这时候需要配置 config/app.php 如下并重新打包。
'public_path' => base_path(false) . DIRECTORY_SEPARATOR . 'public',
install
执行 Webman 框架的安装脚本(调用 \Webman\Install::install()),用于项目初始化。
用法:
php webman install
实用工具命令
version
显示 workerman/webman-framework 版本。
用法:
php webman version
说明: 从 vendor/composer/installed.php 读取版本,若无法读取则返回失败。
fix-disable-functions
修复 php.ini 中的 disable_functions,移除 Webman 运行所需函数。
用法:
php webman fix-disable-functions
说明: 会从 disable_functions 中移除以下函数(及其前缀匹配):stream_socket_server、stream_socket_accept、stream_socket_client、pcntl_*、posix_*、proc_*、shell_exec、exec。若找不到 php.ini 或 disable_functions 为空则跳过。会直接修改 php.ini 文件,建议先备份。
route:list
以表格形式列出所有已注册路由。
用法:
php webman route:list
输出示例:
+-------+--------+-----------------------------------------------+------------+------+
| URI | 方法 | 回调 | 中间件 | 名称 |
+-------+--------+-----------------------------------------------+------------+------+
| /user | GET | ["app\\controller\\UserController","index"] | null | |
| /api | POST | 闭包 | ["Auth"] | api |
+-------+--------+-----------------------------------------------+------------+------+
输出列: URI、方法、回调、中间件、名称。闭包回调显示为「闭包」。
应用插件管理 (app-plugin:*)
app-plugin:create
创建新应用插件,生成 plugin/< 名称 > 下的完整目录结构和基础文件。
用法:
php webman app-plugin:create < 名称 >
参数:
| 参数 | 必需 | 描述 |
|---|---|---|
名称 |
是 | 插件名称,需符合 [a-zA-Z0-9][a-zA-Z0-9_-]*,不能含 / 或 \ |
示例:
# 创建名为 foo 的应用插件
php webman app-plugin:create foo
# 创建带连字符的插件
php webman app-plugin:create my-app
生成目录结构:
plugin/< 名称 >/
├── app/
│ ├── controller/IndexController.php
│ ├── model/
│ ├── middleware/
│ ├── view/index/index.html
│ └── functions.php
├── config/ # app.php、route.php、menu.php 等
├── api/Install.php # 安装 / 卸载 / 更新钩子
├── public/
└── install.sql
说明:
- 插件创建在
plugin/< 名称 >/下,若目录已存在则失败
app-plugin:install
安装应用插件,执行 plugin/< 名称 >/api/Install::install($version)。
用法:
php webman app-plugin:install < 名称 >
参数:
| 参数 | 必需 | 描述 |
|---|---|---|
名称 |
是 | 插件名称,需符合 [a-zA-Z0-9][a-zA-Z0-9_-]* |
示例:
php webman app-plugin:install foo
app-plugin:uninstall
卸载应用插件,执行 plugin/< 名称 >/api/Install::uninstall($version)。
用法:
php webman app-plugin:uninstall < 名称 >
参数:
| 参数 | 必需 | 描述 |
|---|---|---|
名称 |
是 | 插件名称 |
选项:
| 选项 | 快捷方式 | 描述 |
|---|---|---|
--yes |
-y |
跳过确认,直接执行 |
示例:
php webman app-plugin:uninstall foo
php webman app-plugin:uninstall foo -y
app-plugin:update
更新应用插件,依次执行 Install::beforeUpdate($from, $to) 和 Install::update($from, $to, $context)。
用法:
php webman app-plugin:update < 名称 >
参数:
| 参数 | 必需 | 描述 |
|---|---|---|
名称 |
是 | 插件名称 |
选项:
| 选项 | 快捷方式 | 描述 |
|---|---|---|
--from |
-f |
起始版本,默认当前版本 |
--to |
-t |
目标版本,默认当前版本 |
示例:
php webman app-plugin:update foo
php webman app-plugin:update foo --from 1.0.0 --to 1.1.0
app-plugin:zip
将应用插件打包为 ZIP 文件,输出到 plugin/< 名称 >.zip。
用法:
php webman app-plugin:zip < 名称 >
参数:
| 参数 | 必需 | 描述 |
|---|---|---|
名称 |
是 | 插件名称 |
示例:
php webman app-plugin:zip foo
说明:
- 自动排除
node_modules、.git、.idea、.vscode、__pycache__等目录
插件管理 (plugin:*)
plugin:create
创建新 Webman 插件(Composer 包形式),生成 config/plugin/< 名称 > 配置目录和 vendor/< 名称 > 插件源码目录。
用法:
php webman plugin:create < 名称 >
php webman plugin:create --name < 名称 >
参数:
| 参数 | 必需 | 描述 |
|---|---|---|
名称 |
是 | 插件包名,格式为 vendor/package(如 foo/my-admin),需符合 Composer 包名规范 |
示例:
php webman plugin:create foo/my-admin
php webman plugin:create --name foo/my-admin
生成结构:
config/plugin/< 名称 >/app.php:插件配置(含enable开关)vendor/< 名称 >/composer.json:插件包定义vendor/< 名称 >/src/:插件源码目录- 自动向项目根
composer.json添加 PSR-4 映射 - 执行
composer dumpautoload刷新自动加载
说明:
- 名称必须为
vendor/package格式,仅小写字母、数字、-、_、.,且必须包含一个/ - 若
config/plugin/< 名称 >或vendor/< 名称 >已存在则失败 - 同时传入参数和
--name且值不同时会报错
plugin:install
执行插件的安装脚本(Install::install()),将插件资源复制到项目目录。
用法:
php webman plugin:install < 名称 >
php webman plugin:install --name < 名称 >
参数:
| 参数 | 必需 | 描述 |
|---|---|---|
名称 |
是 | 插件包名,格式为 vendor/package(如 foo/my-admin) |
选项:
| 选项 | 描述 |
|---|---|
--name |
以选项形式指定插件名,与参数二选一 |
示例:
php webman plugin:install foo/my-admin
php webman plugin:install --name foo/my-admin
plugin:uninstall
执行插件的卸载脚本(Install::uninstall()),移除插件复制到项目中的资源。
用法:
php webman plugin:uninstall < 名称 >
php webman plugin:uninstall --name < 名称 >
参数:
| 参数 | 必需 | 描述 |
|---|---|---|
名称 |
是 | 插件包名,格式为 vendor/package |
选项:
| 选项 | 描述 |
|---|---|
--name |
以选项形式指定插件名,与参数二选一 |
示例:
php webman plugin:uninstall foo/my-admin
plugin:enable
启用插件,将 config/plugin/< 名称 >/app.php 中的 enable 设为 true。
用法:
php webman plugin:enable < 名称 >
php webman plugin:enable --name < 名称 >
参数:
| 参数 | 必需 | 描述 |
|---|---|---|
名称 |
是 | 插件包名,格式为 vendor/package |
选项:
| 选项 | 描述 |
|---|---|
--name |
以选项形式指定插件名,与参数二选一 |
示例:
php webman plugin:enable foo/my-admin
plugin:disable
禁用插件,将 config/plugin/< 名称 >/app.php 中的 enable 设为 false。
用法:
php webman plugin:disable < 名称 >
php webman plugin:disable --name < 名称 >
参数:
| 参数 | 必需 | 描述 |
|---|---|---|
名称 |
是 | 插件包名,格式为 vendor/package |
选项:
| 选项 | 描述 |
|---|---|
--name |
以选项形式指定插件名,与参数二选一 |
示例:
php webman plugin:disable foo/my-admin
plugin:export
将项目中的插件配置及指定目录导出到 vendor/< 名称 >/src/,并生成 Install.php,便于打包发布。
用法:
php webman plugin:export < 名称 > [--source= 路径]...
php webman plugin:export --name < 名称 > [--source= 路径]...
参数:
| 参数 | 必需 | 描述 |
|---|---|---|
名称 |
是 | 插件包名,格式为 vendor/package |
选项:
| 选项 | 快捷方式 | 描述 |
|---|---|---|
--name |
以选项形式指定插件名,与参数二选一 | |
--source |
-s |
要导出的路径(相对项目根),可多次指定 |
示例:
# 导出插件,默认包含 config/plugin/< 名称 >
php webman plugin:export foo/my-admin
# 额外导出 app、config 等目录
php webman plugin:export foo/my-admin --source app --source config
php webman plugin:export --name foo/my-admin -s app -s config
说明:
- 插件名需符合 Composer 包名规范(
vendor/package) - 若
config/plugin/< 名称 >存在且未在--source中,会自动加入导出列表 - 导出的
Install.php含pathRelation,供plugin:install/plugin:uninstall使用 plugin:install、plugin:uninstall要求插件已存在于vendor/< 名称 >,且存在Install类及WEBMAN_PLUGIN常量
服务管理
start
启动 Webman 工作进程,默认 DEBUG 模式(前台运行)。
用法:
php webman start
选项:
| 选项 | 快捷方式 | 描述 |
|---|---|---|
--daemon |
-d |
以 DAEMON 模式启动(后台运行) |
stop
停止 Webman 工作进程。
用法:
php webman stop
选项:
| 选项 | 快捷方式 | 描述 |
|---|---|---|
--graceful |
-g |
平滑停止,等待当前请求处理完成后再退出 |
restart
重启 Webman 工作进程。
用法:
php webman restart
选项:
| 选项 | 快捷方式 | 描述 |
|---|---|---|
--daemon |
-d |
重启后以 DAEMON 模式运行 |
--graceful |
-g |
平滑停止后再重启 |
reload
无停机重载代码,适用于代码更新后热加载。
用法:
php webman reload
选项:
| 选项 | 快捷方式 | 描述 |
|---|---|---|
--graceful |
-g |
平滑重载,等待当前请求处理完成后再重载 |
status
查看工作进程运行状态。
用法:
php webman status
选项:
| 选项 | 快捷方式 | 描述 |
|---|---|---|
--live |
-d |
显示详情(实时状态) |
connections
获取工作进程连接信息。
用法:
php webman connections