cakephp 运行 一个 Shell

cakephp running a Shell

我是 cakephp 的新手,我正在尝试 运行 Shell

我的命令是:

bin/cake CreateUsers

此文件可在以下位置找到:

myproject/src/Shell/CreateUsersShell.php

但是我怎么能 运行 来自另一个目录的另一个 shell 呢?

比如说,在

myproject/src/Shell/Admin/AdminBatchShell

我试过命令,

bin/cake Admin/AdminBatch

但我认为命令失败,无法找到。

带目录的 cakephp 中 运行ning shells 的语法是什么?

你不能那样做。

当 CakePHP 查找 shell 时,它只扫描 App\Shell 文件夹,而不扫描子文件夹。

所以你所有的 shell 都需要在 App\Shell 文件夹中。

我想你可以为你的管理员写一个简单的包装器shell,看起来像

namespace App\Shell;

class AdminBatchShell extends \App\Shell\Admin\AdminBatchShell {

}

这基本上会在适当的命名空间中创建您的管理员 shell 的副本,因此您可以使用此命令

bin/cake admin_batch

备注

与 public 和前缀有意义的 Web 访问不同,因为您希望管理内容受到保护,如果 shell 给它们加上前缀没有多大意义,因为它们只能从您的托管命令环境中执行,因此只有 Web 管理员或 cron 作业可以 运行 它。