Запуск консольного приложения через http вызов

Обсуждение документации второй версии фреймворка. Переводы Cookbook и авторские рецепты.
Ответить
Sasha_ch
Сообщения: 80
Зарегистрирован: 2011.04.10, 15:59
Контактная информация:

Запуск консольного приложения через http вызов

Сообщение Sasha_ch »

...думаю иногда бывает такая необходимость (

допустим консольное приложение вы в консоле запускаете командой:

Код: Выделить всё

php path-to-yii2/yii sitemap/index
(тут sitemap/index это контроллер/экшн)

чтобы запустить тоже самое, но только уже через http, делаем следующее:

допустим ваш сайт mysite.ru

кладем в корень (или куда удобнее) файл, например "console.php" :

Код: Выделить всё

if($_GET['p']=='sitemap/index'){

    // параметры вводимые в консоли, только уже в виде масива
    $_SERVER['argv'] = [ 0=>__FILE__, 1=>'sitemap/index' ];     
    
    // к-во элементов массива argv
    $_SERVER['argc'] = 2;                                 
    
    require('../../yii');
    
}
Запускаем http://mysite.ru/console.php?p=sitemap/index
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: Запуск консольного приложения через http вызов

Сообщение zelenin »

а знаете, еще можно вот так сделать:

Код: Выделить всё

exec('php yii sitemap/index');
как я вас, а? одной строчкой уделал!
Cyber555
Сообщения: 17
Зарегистрирован: 2015.02.27, 12:11

Re: Запуск консольного приложения через http вызов

Сообщение Cyber555 »

Дык exec - вроде как, функция запрещенная, ее использовать не выйдет
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: Запуск консольного приложения через http вызов

Сообщение zelenin »

Cyber555 писал(а):Дык exec - вроде как, функция запрещенная, ее использовать не выйдет
посадят?
Cyber555
Сообщения: 17
Зарегистрирован: 2015.02.27, 12:11

Re: Запуск консольного приложения через http вызов

Сообщение Cyber555 »

нету такой команды :) в списке запрещенных она, не работаить ;)
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: Запуск консольного приложения через http вызов

Сообщение zelenin »

Cyber555 писал(а):нету такой команды :) в списке запрещенных она, не работаить ;)
в уголовном кодексе запрещена?
Cyber555
Сообщения: 17
Зарегистрирован: 2015.02.27, 12:11

Re: Запуск консольного приложения через http вызов

Сообщение Cyber555 »

ага! УК называется php.ini disable_functions :)
если разрешена, админа можно гнать в шею
>>как я вас, а? одной строчкой уделал!
;)
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: Запуск консольного приложения через http вызов

Сообщение zelenin »

Cyber555 писал(а):ага! УК называется php.ini disable_functions :)
наконец-то вы озвучили проблему, а то мялись как девочка. Там еще куча команд, которые имеют такой же смысл.
Cyber555 писал(а):если разрешена, админа можно гнать в шею
а много ли вы понимаете в сисадминстве-то?)
Ответить