cakephp运行Shell

时间:2018-04-27 03:26:39

标签: cakephp cakephp-3.0

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

我的命令是:

bin/cake CreateUsers

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

myproject/src/Shell/CreateUsersShell.php

但我怎么能从另一个目录运行另一个shell?

比如说,在

myproject/src/Shell/Admin/AdminBatchShell

我尝试了命令,

bin/cake Admin/AdminBatch

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

使用目录在cakephp中运行shell的语法是什么?

1 个答案:

答案 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作业可以运行它。