【发布时间】:2019-08-18 10:55:59
【问题描述】:
我正在开发一个用于学习建议的定制 PHP 框架, 现在我需要为我的框架创建自定义 cli,并且我想将它放在不同的 composer 包中,以便单独使用和更新。
问题是:
我如何在我的框架中使用分离的 cli 及其命令,就好像它在框架中的内部命令一样?!或者换句话说,我如何在 Laravel 中为我的 cli 包创建像 artisan 这样的文件?
例如:
在 cli composer 包中,这是运行命令的方法
$bin/console hello-world
在需要 cli 包后,我希望能够在我的框架中使用此命令
或
创建一个自定义文件,例如名为指挥官的工匠并使用它
commander hello-world
【问题讨论】:
-
Laravel 的
artisan命令只是一个简单的可执行php脚本,没有.php扩展名。 github.com/laravel/laravel/blob/master/artisan -
好的,我知道,但是我如何在我的框架中使用 cli 包命令
-
这是一个很宽泛的问题,而且非常有说服力,我的建议是查看 laravel 源代码以了解如何操作,当您遇到特定的编程问题时,请在此处寻求帮助。
-
答案是:你不能。如果您执行
php artisan list,那么在您运行它的当前目录中必须有一个名为artisan的文件。您当然可以创建一个仅充当另一个可执行文件的包装器的文件(并将输入重定向到vendor/bin/console),但您需要在项目目录中创建一个文件。