Cakephp shell:找不到Shell类HelloShell

时间:2012-05-20 07:36:16

标签: shell cakephp

我是cakephp的新手。我将cakephp shell配置为cakephp 手册说,当我用命令cake运行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 \

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

3 个答案:

答案 0 :(得分:14)

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

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

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

...app/>Console/cake MyShell
然后

和MyShell应该在...app/Console/Command/。 多数民众赞成就是这样。

答案 1 :(得分:2)

错误: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类,因为“Convention over configuration”。

enter image description here

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

答案 2 :(得分: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文件名;你好是我的shell名字,那就是 / var / www / html / Console / cake你好  结合在一起 / var / www / html $ / var / www / html / Console / cake你好

你的shell将被执行。