Я пытаюсь сделать приложение-крону в своем приложении Zend Framework. Проблема в том, когда я пытаюсь запустить его. Это показывает мне следующую ошибку, и команда:
Команда: php public / index.php cron full
Результат: Причина сбоя: неверные аргументы или аргументы не предоставлены
module.config.php:
array(
'controllers' => array(
'invokables' => array(
'Sync\Controller\Cron' => 'Sync\Controller\CronController',
//'Sync\Controller\Index' => 'Sync\Controller\IndexController',
),
),
'console' => array(
'router' => array(
'routes' => array(
/*'user-reset-password' => array(
'options' => array(
'route' => 'user resetpassword [--verbose|-v] <userEmail>',
'defaults' => array(
'controller' => 'Sync\Controller\Index',
'action' => 'password'
)
)
),*/
'cron' => array(
'options' => array(
'route' => 'cron full',
'defaults' => array(
'controller' => 'Sync\Controller\Cron',
'action' => 'full'
),
),
),
)
)
)
)
CronController.php
class CronController extends AbstractActionController{
public function fullAction()
{
$request = $this->getRequest();
if (!$request instanceof ConsoleRequest) {
throw new \RuntimeException('You can only use this action from a console!');
}
return("hi");
}
public function centerAction()
{
}
}
module.php
public function getConsoleUsage(Console $console)
{
return array(
// Describe available commands
/*$console->colorize('User resetpassword [--verbose|-v] EMAIL ->Reset password for a user', Color::YELLOW),
// Describe expected parameters
array($console->colorize('EMAIL', Color::GREEN), 'Email of the user for a password reset'),
array('--verbose|-v', '(optional) turn on verbose mode'),*/
$console->colorize('Cron [full|center]', Color::YELLOW),
array($console->colorize('cron full', Color::GREEN), 'Execute full cron job'),
array($console->colorize('cron center', Color::GREEN), 'Execute center cron job'),
);
}
public function getConfig()
{
return include __DIR__ . '/config/module.config.php';
}
public function getAutoloaderConfig()
{
return array(
'Zend\Loader\ClassMapAutoloader' => array(
__DIR__ . '/autoload_classmap.php',
),
'Zend\Loader\StandardAutoloader' => array(
'namespaces' => array(
__NAMESPACE__ => __DIR__ . '/src/' . __NAMESPACE__,
),
),
);
}
Ошибка
«Причина сбоя: неверные аргументы или аргументы не предоставлены»
произойдет, если консольный маршрут не был зарегистрирован.
Это ваш полный файл module.config.php? Я предполагаю, что вы только что исключили оператор возврата для массива из фрагмента кода, и он действительно есть в файле module.config.php в вашем приложении?
И это в отдельном модуле? Вы определенно включили модуль в config / application.config.php
как кажется, все в порядке с кодом
Других решений пока нет …