运行CakePHP Shell脚本

时间:2012-07-19 07:32:02

标签: shell cakephp cakephp-2.1

我创建了一个shell脚本,如下所示

<?php

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

当我在命令行中导航到控制台文件夹并输入蛋糕电子邮件时,我收到以下错误。

Error: Shell class EmailShell could not be found.
#0 C:\wamp\www\gitgrow\lib\Cake\Console\ShellDispatcher.php(167): ShellDispatche
r->_getShell('email')
#1 C:\wamp\www\gitgrow\lib\Cake\Console\ShellDispatcher.php(69): ShellDispatcher
->dispatch()
#2 C:\wamp\www\gitgrow\app\Console\cake.php(33): ShellDispatcher::run(Array)
#3 {main}

4 个答案:

答案 0 :(得分:5)

创建一个在控制台中使用的shell。在本例中,我们将创建一个简单的Hello world shell。在您的应用程序Console / Command目录中创建EmailShell.php。将以下代码放入其中:

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

然后运行此命令:

Console/cake email

cake email

答案 1 :(得分:2)

C:\wamp\www\gitgrow\app\运行它。它应该工作。

cd C:\wamp\www\gitgrow\app
Console\cake email

答案 2 :(得分:1)

如果你的shell类位于正确的位置,那么蛋糕可能不知道你的应用程序根目录在哪里。您可以使用-app参数指定它。

cake -app ../app email

答案 3 :(得分:1)

请参阅以下有关如何在cron中运行Cake shell的链接:

http://book.cakephp.org/2.0/en/console-and-shells/cron-jobs.html

你的cron命令基本上将cd调用到app目录和cake命令以一起运行shell。