我创建了一个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}
答案 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。