正确做法是运行 composer create-project laravel-zero/laravel-zero my-cli-app 初始化项目,因其已改为模板分发而非独立包;需确保 Composer ≥2.2,目录为空,命令注册须手动添加到 config/commands.php。

用 composer create-project 初始化 Laravel Zero 项目
直接跑命令就行,Laravel Zero 官方已不再维护独立包,而是通过 laravel-zero/framework 模板分发。别去搜 laravel-zero/laravel-zero —— 那个包早就废弃了,装了也跑不起来。
正确做法是:
- 确保 Composer 已安装且版本 ≥ 2.2(旧版可能拉不到最新模板)
- 运行:
composer create-project laravel-zero/laravel-zero my-cli-app - 进目录:
cd my-cli-app,然后php application看是否输出帮助信息
注意:my-cli-app 不能是已存在的非空目录,否则 Composer 会报错 Destination directory is not empty;如果想覆盖重装,先删掉再跑命令。
为什么 laravel-zero/framework 不是常规 Composer 包
Laravel Zero 是一个「应用模板」,不是你 require 进现有项目的库。它自带完整的 application 入口、预置的 Artisan 命令结构和 CLI 优化配置(比如自动禁用 Session、View、URL 生成等 Web 相关组件)。
常见误解:
- 试图在已有 Laravel 项目里
composer require laravel-zero/framework→ 不生效,框架没设计成可嵌入式 - 手动复制
artisan改成application→ 缺少bootstrap/app.php的 CLI 特殊引导逻辑,命令注册会失败 - 用
laravel/installer创建后再改 → 多余,且容易漏掉config/commands.php和app/Commands/结构
本质区别:它是“开箱即 CLI”的完整骨架,不是插件。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
php application 执行失败的三个高频原因
刚创建完一跑就报错?大概率卡在这几个点:
-
Class 'LaravelZero\Framework\Kernel' not found→ Composer 自动加载没刷新,执行composer dump-autoload再试 -
Could not open input file: application→ 当前目录不对,或文件权限问题(Linux/macOS 下确认application有可执行权限:chmod +x application) - 输出一堆
ReflectionException或Target class [App\Commands\...] does not exist→app/Commands/下的类命名空间写错了,必须是App\Commands\YourCommand,且文件名要严格匹配(如HelloCommand.php对应HelloCommand类)
所有命令都走 application 文件,它不是符号链接,别删、别改、别重命名。
自定义命令后为什么不显示在 php application list
新写的命令不会自动注册,Laravel Zero 不像 Laravel Web 那样扫描 app/Console/Commands。它依赖显式声明:
- 命令类必须放在
app/Commands/目录下(不是app/Console/Commands) - 类需继承
LaravelZero\Framework\Commands\Command(不是Illuminate\Console\Command) - 必须在
config/commands.php中手动添加类名到'commands'数组,例如:App\Commands\HelloCommand::class
漏掉第三步,命令就完全不可见——这个配置文件就是它的“命令注册表”,没有魔法扫描。
最常被跳过的其实是 config/commands.php 的手动维护。很多人以为写完类就完事了,结果 php application list 里干干净净,查半天 autoload 或命名空间,其实只是忘了加一行配置。

















