我是cakephp的新手,我正在尝试运行Shell
我的命令是:
bin/cake CreateUsers
此文件可在以下位置找到:
myproject/src/Shell/CreateUsersShell.php
但我怎么能从另一个目录运行另一个shell?
比如说,在
中myproject/src/Shell/Admin/AdminBatchShell
我尝试了命令,
bin/cake Admin/AdminBatch
但我认为该命令失败,无法找到。
使用目录在cakephp中运行shell的语法是什么?
答案 0 :(得分:2)
你做不到。
当CakePHP正在寻找shell时,它只扫描App\Shell
文件夹而不扫描子文件夹。
所以你的所有shell都需要在App\Shell
文件夹中。
我猜你可以为你的管理shell编写一个简单的包装器,看起来像
namespace App\Shell;
class AdminBatchShell extends \App\Shell\Admin\AdminBatchShell {
}
这基本上会在适当的命名空间中创建管理shell的副本,以便您可以使用此命令
bin/cake admin_batch
与公共的Web访问不同,前缀是有意义的,因为您希望管理员的东西是安全的,如果shell为它们添加前缀没有多大意义,因为它们只能从您的托管命令环境执行,所以只有Web管理员或者cron作业可以运行它。