10

我是 cakephp 的新手。我按照 cakephp 手册所述配置 cakephp shell,当我使用命令 cake Hello 运行 HelloShell 时,我得到如下错误信息:

Error: Shell class HelloShell could not be found.
1#G:\htdocs\cakedemo\lib\Cake\Console\ShellDispatcher.php(191):ShellDispatcher>_getShell('hello')
2#G:\htdocs\cakedemo\lib\Cake\Console\ShellDispatcher.php(69):ShellDispatcher->dispatch()
3#G:\htdocs\cakedemo\app\Console\cake.php(33):ShellDispatcher::run(Array)  {main}

我的 cakephp 版本:

欢迎使用 CakePHP v2.2.0-beta 控制台

应用程序:控制台

路径:G:\htdocs\cakedemo\app\Console\

任何有帮助的人都可以给我一个建议,请。

4

3 回答 3

16

这是你的错误。您应该始终在您的 APP 路径中执行蛋糕控制台。

...app/>../lib/Cake/Console/cake MyShell

或(使用 APP 控制台文件夹):

...app/>Console/cake MyShell

然后 MyShell 应该在...app/Console/Command/. 这里的所有都是它的。

于 2012-05-20T08:45:39.490 回答
3

错误:Shell class HelloShell could not be found出现是因为:拼写错误或在错误的目录下运行命令。

解决方法:

1. php.exe、cake.exe的设置路径

2.比如我的Cake网站根是:

C:\tools\xampp1.8.3\htdocs\cakephp-2.5.5

在包含内容的文件夹中创建新文件C:\tools\xampp1.8.3\htdocs\cakephp-2.5.5\app\Console\Command\HelloShell.php

class HelloShell extends AppShell {
    public function main() {
        $this->out('Hello world.');
    }
}

3.打开cmd,输入:

cd /d C:\tools\xampp1.8.3\htdocs\cakephp-2.5.5\app

cake hello

我们hello在命令行中使用来调用HelloShell类,因为“约定优于配置”。

在此处输入图像描述

参考: http ://book.cakephp.org/2.0/en/console-and-shells.html#creating-a-shell

于 2014-11-10T14:24:50.090 回答
0

确保在 /var/www/html/Console/cake.php ini_set('include_path', $root . PATH_SEPARATOR . 'Cake' . $ds . 'lib' . PATH_SEPARATOR . ini_get('include_path') );

然后转到根文件夹。在我的情况下,位置将是 /var/www/html/ 然后给出 shell 文件名;hello 是我的 shell 名称,即 /var/www/html/Console/cake hello 组合在一起 /var/www/html$ /var/www/html/Console/cake hello

你的 shell 将被执行。

于 2016-03-24T10:39:31.657 回答