Я пробую к «поддельной вилке» процесс (электронное письмо, посылаемое через SMTP) в моем веб-приложении, и применение основано на Kohana.
$command = 'test/email';
exec('php index.php '.$command.' > /dev/null/ &', $errors, $response);
Я получаю ошибку-
Notice: Undefined index: SERVER_NAME
Когда я изучаю index.php файл Коханы, я вижу, что он ищет переменную под названием SERVER_NAME, но я предполагаю, что он подходит ПУСТОЙ УКАЗАТЕЛЬ, потому что Kohana не мог обнаружить эту стоимость и установить ее до пробега.
Какие-либо идеи, как заставить Kohana работать через командную строку?
Насколько я знаю, вы не можете запустить файлы Kohana непосредственно в командной строке из-за его методов Bootstrap.
Вы могли бы сделать 2 вещи: Экспортируйте все команды, такие как функции за пределами Коханы и бегите их независимо.
Что-то еще, что вы могли бы выполнить, запустите его через index.php, расположенный в главной папке Kohana, пройдя в прохождении контроллера $, $ метод переменных к нему, чтобы он заканчивается на правом объекте, где находится ваш код:
Для Коханы 2:
php index.php controller/method/var1/var2
Кохана 3
php index.php --uri=controller/method/var1/var2
Редактировать: Kohana имеет отличную CLI Task Runner от версии 3.3 в качестве официального модуля. Для версии 3.2 это все еще неофициальный модуль. Я предлагаю вам использовать их, потому что они дают много дополнительных вариантов для работы из CLI:
Если вы используете Kohana 3, вы можете запустить его из терминала.
php index.php --uri=controller/action
А Kohana2 - это просто php index.php controller/method/param1/param2/etc
Kohana была создана для работы как в CLI, так и в web.
Изучив исходный код Kohana3, я обнаружил, что он поддерживает cli ( system / classes / kohana / cli.php
) . Вы можете передать 3 варианта (uri, method, get, post). Итак: -
$ php index.php --uri = "items / list"
вызовет метод list
в Controller_Items
.
Для Kohana 3 ознакомьтесь с этими документами и исходниками.