Запуск сценариев оболочки из Cake PHP - PullRequest
0 голосов
/ 26 марта 2012

У меня есть приложение, которое я написал очень MVC с использованием Cake PHP. Теперь мне нужно выполнить сценарий оболочки из приложения. Предоставляет ли Cake PHP способ выполнения сценариев оболочки? То есть есть что-то встроенное для этого или нет? Я использую CakePHP 2.

Большое спасибо:).

Ответы [ 2 ]

10 голосов
/ 27 марта 2012

Да, вы можете легко выполнять сценарии оболочки вручную из вашего приложения. в 2.x это даже проще, чем в 1.3 и т. д .:

App::uses('MyShell', 'Console/Command');
$this->My = new MyShell();
$this->My->myMethod();

Я использую его для проверки оболочек, которые я пишу внутри тестовых случаев. Но это также будет работать в приложении:)

Похоже на задачи. Я использую это в своем TranslatePlugin для выполнения ExtractTask ядра с некоторыми конкретными настройками непосредственно с уровня контроллера / модели.

Имейте в виду, что вам, возможно, придется добавить / передать некоторый ручной класс ConsoleOutput, если у вас есть какой-то определенный сценарий оболочки. Было бы лучше перенести ваш код в задачу (а не в оболочку!), Если это возможно. Более того, поместите его в библиотеку Lib или другой общий файл, который вы можете отправить как из своей оболочки, так и из обычного кода приложения. Это был бы самый чистый подход на эту тему.

0 голосов
/ 26 марта 2012

Не напрямую, нет. Сценарий оболочки - как следует из названия - предназначен для запуска из оболочки, а не из вашего приложения.

Несмотря на то, что в ответе Дейзель на на этот вопрос .

есть несколько советов о том, как заставить ваше приложение взаимодействовать со своими оболочками.
...