Скрипт для запуска консольных контроллеров по http для демонстрации клиентам.
<?php
// "php cli.php shop myPluginRun" -> "http://site.ru/cron.php?app=shop&controller=myPluginRun"
require_once realpath(__DIR__.'/wa-config/SystemConfig.class.php');
$config = new SystemConfig('cli');
$controller = ifset($_GET['controller'], '');
if (!strpos($controller, 'Plugin')) {
throw new waRightsException('Контроллер плагина не найден.');
}
echo 'Выполнение начато.'.PHP_EOL;
try {
waSystem::getInstance(null, $config)->dispatchCli(array(
__FILE__,
ifset($_GET['app'], 'shop'),
$controller
));
echo 'Выполнение завершено.';
} catch (Exception $e) {
waLog::log($e->getMessage(), 'cron.log');
echo 'Возникла ошибка, подробности в лог файле "cron.log".';
}
2 комментария
Немного по-другому делал, т.к. в примере выше нельзя передать доп. параметры, например:
И кроме того cli-контроллер плагина технически может не содержать суффикса Plugin. Достаточно такого наименования shopMyplagenCli, чтобы запускалось cli.php shop myplagen
это решаемо
Проверку делал для защиты от запуска cli контроллеров приложений.
С wget/curl мало кто из клиентов знаком, а начинать объяснения себе дороже.