Php zend fzend framework 2 cron

Php zend fzend framework 2 cron,php,cron,zend-framework2,Php,Cron,Zend Framework2,我已经在Zend Framework 2中创建了应用程序。我想作为cron作业运行控制器操作。我读了很多关于它的书,但我不知道如何运行它 我做过类似的事情。我将控制台路由添加到模块的module.config.php 'console' => array( 'router' => array( 'routes' => array( 'cronroute' => array( 'options'

我已经在Zend Framework 2中创建了应用程序。我想作为cron作业运行控制器操作。我读了很多关于它的书,但我不知道如何运行它

我做过类似的事情。我将控制台路由添加到模块的
module.config.php

'console' => array(
    'router' => array(
        'routes' => array(
            'cronroute' => array(
                'options' => array(
                    'route'    => 'updateproducts',
                    'defaults' => array(
                        'controller' => 'Application\Controller\Console',
                        'action' => 'update'
                    )
                )
            )
        ),
    ),
),
public function cronTest(){
    $data = array(
        'login' =>  'cronZend'
    );
    $this->tableGateway->insert($data);
}
$dbc = mysqli_connect(****);

$query = "INSERT INTO vm_user (login) VALUES ('cron')";

mysqli_query($dbc, $query);
我创建了名为
ConsoleController

namespace Application\Controller;

use Zend\Mvc\Controller\AbstractActionController;
use Zend\View\Model\ViewModel;

use Application\Model;
use Application\Model\Auth;

class ConsoleController extends AbstractActionController
{
    protected $usersTable = null;

public function updateAction()    
{
    $this->getUsersTable()->cronTest();
    return false;
}


public function getUsersTable()
{
    if (!$this->usersTable) {
        $sm = $this->getServiceLocator();
        $this->usersTable = $sm->get('Application\Model\UsersTable');
    }
    return $this->usersTable;
}
内部
Auth.php

'console' => array(
    'router' => array(
        'routes' => array(
            'cronroute' => array(
                'options' => array(
                    'route'    => 'updateproducts',
                    'defaults' => array(
                        'controller' => 'Application\Controller\Console',
                        'action' => 'update'
                    )
                )
            )
        ),
    ),
),
public function cronTest(){
    $data = array(
        'login' =>  'cronZend'
    );
    $this->tableGateway->insert($data);
}
$dbc = mysqli_connect(****);

$query = "INSERT INTO vm_user (login) VALUES ('cron')";

mysqli_query($dbc, $query);
我认为这里的一切都很好,我尝试在共享服务器的命令行中编写一些东西:

/usr/local/bin/php /home/****/domains/****/public_html/public/index.php updateproducts
但它不起作用。当我在
cron.php

'console' => array(
    'router' => array(
        'routes' => array(
            'cronroute' => array(
                'options' => array(
                    'route'    => 'updateproducts',
                    'defaults' => array(
                        'controller' => 'Application\Controller\Console',
                        'action' => 'update'
                    )
                )
            )
        ),
    ),
),
public function cronTest(){
    $data = array(
        'login' =>  'cronZend'
    );
    $this->tableGateway->insert($data);
}
$dbc = mysqli_connect(****);

$query = "INSERT INTO vm_user (login) VALUES ('cron')";

mysqli_query($dbc, $query);
和在命令行中

/usr/local/bin/php /home/****/domains/****/public_html/cron.php

它很好用。有谁能告诉我哪里出了问题或者怎么做吗?

乍一看,您的代码看起来不错。当你说“它不起作用”时,会发生什么?你收到错误信息了吗?如果从终端窗口运行该命令,输出结果是什么?@timfuntaok工作正常,我做错了什么。当我在
module.config.php
中更改控制器和对其他对象的操作时,它开始工作。你帮了我的忙,写了“你的代码乍一看很好”。非常感谢。要在本地主机上进行测试,请导航到项目目录并在控制台中运行cron以查看错误,然后在共享主机中进行配置。若要从控制台运行,若尚未配置,则需要配置php环境变量。