【发布时间】:2019-11-17 20:11:14
【问题描述】:
namespace Admin\Shell;
use Cake\Console\Shell;
class AdminAlertShell extends Shell{
...
...
}
这里的“Admin”是插件,所以我在插件文件夹结构中创建了这个文件。 文件路径:/plugins/Admin/src/Shell/AdminAlertShell.php
试图在 CLI 中运行它
bin/cake admin_alert
但是抛出异常
例外:未知命令cake admin_alert。运行cake --help 以获取有效命令列表。在 [localpath/vendor/cakephp/cakephp/src/Console/CommandRunner.php,第 346 行]
它正在工作。但我不知道这是怎么回事。我已将 cakephp 3.5 升级到 3.7。但是,我不确定这是否会导致问题。
【问题讨论】:
-
CakePHP 从 3.6 开始贬低使用 shell。在他们的文档book.cakephp.org/3.0/en/console-and-shells/commands.html 中,他们提到了以下“3.6.0 版中的新功能:添加了命令来长期替换 Shell。Shell 和任务有几个在不破坏兼容性的情况下很难纠正的缺点。”
-
@HasnatSafder 感谢您的快速回复。是的,它正在贬值。但它在插件之外工作正常。只有当我将它放在插件文件夹中时才会出现问题。当我在插件中创建命令文件夹时,抛出异常“找不到命令”。
-
在使用 CakePHP 3.6 以后的版本时,我从未读过关于在主 src/commands 目录之外使用命令的信息。
-
可能无法找到/访问您的文件/类,例如由于权限问题或拼写错误,或者您的插件未加载(检查您的
Application类的引导程序)。跨度> -
@ndm 它工作正常。所以没有拼写错误或插件不加载问题的机会。感谢您的帮助。
标签: cakephp-3.7