如何在cake php中设置cron作业?以及用于创建脚本的文件?

时间:2014-04-03 05:18:05

标签: cron cakephp-2.0

如何在Cake PHP中设置cron作业以及用于创建脚本的文件?

2 个答案:

答案 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,则无需提及。如果它不是主要只是你的功能名称并输入。你可以在输入命令后看到结果。

您应该看到以下输出:

欢迎使用CakePHP v2.0.0控制台

应用:应用

路径:/ cake_dev / app /

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;

在命令行管理程序中访问函数的参数

谢谢!