如何在Cake PHP中设置cron作业以及用于创建脚本的文件?
答案 0 :(得分:1)
如果您使用 cakephp 2.x 。 在app / Console / Command /下创建一个像FilenameShell.php。
这样的php文件在 FilenameShell.php 中包含以下代码
class FilenameShell扩展了AppShell {
//Instead of main you can write your own function name
public function main(){
//your code goes here ...
$this->out('Hello world.');
}
}
shell类的约定是类名应与文件名匹配,后缀为Shell。在我们的shell中,我们创建了一个main()方法。在没有其他命令的情况下调用shell时,将调用此方法。我们稍后会添加一些命令,但是现在让我们运行我们的shell。从您的应用程序目录中,运行:
控制台/蛋糕功能名称
注意: - 如果您的函数名称是main,则无需提及。如果它不是主要只是你的功能名称并输入。你可以在输入命令后看到结果。
您应该看到以下输出:
应用:应用
Hello world。
答案 1 :(得分:0)
这可以通过以下步骤轻松完成 - :
1)创建一个shell,让我们在Console / Command
中说HelloShell.php <?php
class HelloShell extends AppShell
{
public function main()
{
//Your functionality here...
}
}
?>
这个shell可以通过Console / cake hello调用
2)编写命令crontab-e
。这将打开默认编辑器或您选择的编辑器现在我们希望我们的shell应该在每5分钟写一次后运行: -
*/5 * * * * /PATH TO APP/Console/cake hello
为了更好地理解,请参阅https://www.youtube.com/watch?v=ljgvo2jM234
3)如果你想在Shell中调用Controller的动作,只需导入那个特定的控制器,让我们说{App} App::uses('AppController', 'Controller');
现在通过
在Shell中创建对象AppController$object =new AppController();
$object->func_in_controller();
现在可以通过$object->func_param;
谢谢!