Hyperf CLI是基于symfony/console的命令行工具,通过php bin/hyperf.php统一入口调用,支持代码生成、服务管理、调试等;内置gen:controller、server:start等命令,自定义命令需置于app/Command/并实现configure/handle方法。

Hyperf 的命令行工具(Hyperf CLI)是基于 symfony/console 构建的,主要用于快速生成代码、管理服务、调试和开发辅助。它不是独立二进制,而是通过 php bin/hyperf.php 入口调用,所有命令都围绕这个入口展开。
基础运行方式:php bin/hyperf.php
Hyperf 项目默认在 bin/hyperf.php 提供统一命令入口,所有 CLI 功能均由此触发:
- 执行
php bin/hyperf.php可查看全部可用命令列表及简要说明 - 执行
php bin/hyperf.php list效果相同,是 Symfony Console 的标准行为 - 命令格式统一为:
php bin/hyperf.php [command:subcommand] [options] [arguments]
常用内置命令速查
Hyperf 自带一批高频实用命令,无需额外安装:
-
php bin/hyperf.php gen:controller User—— 生成控制器类(支持 --model、--rest 等选项) -
php bin/hyperf.php gen:model User—— 生成模型类(自动匹配数据库表结构) -
php bin/hyperf.php gen:command SendEmail—— 创建自定义 Artisan 风格命令类 -
php bin/hyperf.php server:start—— 启动 HTTP 服务(等价于php bin/hyperf.php start) -
php bin/hyperf.php contract:publish—— 发布契约配置(如 config/autoload/contracts.php)
自定义命令注册与运行
若你新增了继承 Hyperf\Command\Command 的命令类,需确保满足两个条件才能被识别:
- 类必须放在
app/Command/目录下(或已配置到scan.scan_dirs) - 类中需正确实现
configure()和handle()方法,并调用$this->setName('your:command') - 注册后直接运行
php bin/hyperf.php your:command即可,无需手动加载或缓存刷新
调试与开发辅助命令
部分命令专为开发阶段设计,提升排查效率:
-
php bin/hyperf.php di:dump—— 导出当前容器中所有已注册的 DI 对象(含别名和依赖关系) -
php bin/hyperf.php amqp:consume demo—— 手动触发 AMQP 消费者(适用于调试队列逻辑) -
php bin/hyperf.php redis:connect—— 测试 Redis 连接是否正常(需配置好 redis.php) -
php bin/hyperf.php config:publish—— 将组件默认配置发布到config/autoload/下便于自定义
不复杂但容易忽略:所有命令默认运行在 dev 环境,如需切换环境,可通过 APP_ENV=prod php bin/hyperf.php ... 显式指定。










