如何使用zend框架2运行cron作业

use*_*508 13 php cron zend-framework2

我有Zend Framework 2中内置的应用程序.我想设置cron作业来更新我的产品.我知道这样的脚本应该从公共文件夹外部运行,但不幸的是我在cron中的脚本需要使用框架文件.
我怎样才能做到这一点?
我想出的唯一方法是从公共文件夹外部运行脚本,然后添加一些哈希或密码并重定向到

www.domain.com/cron/test
Run Code Online (Sandbox Code Playgroud)

所以我将拥有所有框架功能.
它会安全吗?也许还有另一种方式?

edi*_*igu 25

我强烈建议使用CLI来满足此类要求.

  1. 在应用程序模块中创建一个带有updateAction()的ConsoleController.
  2. 添加控制台路由到您的应用程序模块module.config.php:

    array(
        'router' => array(
            'routes' => array(
            ...
            )
        ),
    
    'console' => array(
        'router' => array(
            'routes' => array(
                'cronroute' => array(
                    'options' => array(
                        'route'    => 'updateproducts',
                        'defaults' => array(
                            'controller' => 'Application\Controller\Console',
                            'action' => 'update'
                        )
                    )
                )
            )
        )
    )
    );
    
    Run Code Online (Sandbox Code Playgroud)
  3. 现在打开终端和

    $ cd /path/to/your/project
    $ php public/index.php updateproducts
    
    Run Code Online (Sandbox Code Playgroud)

就这样.希望能帮助到你.