2012-03-26 1 views
0

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

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

ответ

10

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

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

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

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

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

+0

Только то, что я искал :). Большое спасибо. – ale

+0

Спасибо за это! Для всех, кто использует плагин CakePHP Queue и хочет протестировать задачу, вы должны сделать следующее: App :: uses ('QueueMyTask', 'Plugin/Queue/Console/Command/Task'); –

0

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

Хотя, есть некоторые указания, как вы можете заставить ваше приложение взаимодействовать с вашими раковинами в ответе Дейзеля на this question.

 Смежные вопросы

  • Нет связанных вопросов^_^