@xbox

Как запустить из командной строки одну из функций в action файле в symfony?

Добрый день.

Я делаю bash скрипт, который копирует файлы из одной папки в другую.
После этого мне на сайте в готовом приложении на Symfony 1.2 приходится заходить в админку и нажимать ссылку "пересканировать каталоги".

Подскажите, можно ли запустить из командной строки одну из публичных функций, которая располагается в action файле одного из модулей в проекте на Symfony?

То, что мне нужно запустить находитcя в actions.class.php файле одного из модулей CMS и выглядит вот так:
public function executeRescan(sfWebRequest $request)
  {
    list($new, $old) = FilePeer::rescanDirs();    
    $this->getUser()->setFlash('notice', $new . ' файл(ов) добавлено, ' . $old . ' файл(ов) удалено.');
  }
  • Вопрос задан
  • 236 просмотров
Решения вопроса 1
@xbox Автор вопроса
Сам отвечу на свой вопрос.

Решил задачу так:
Генерируем task задачу
php symfony generate:task --brief-description="Короткое описание." task_name

В сгенерированный файл, который по-умолчанию находится в папке lib/task пишем то, что нужно запустить.

Как из task файла запустить функцию, которая располагается в action файле темплейта, я не разобрался. В моем случае я просто скопировал код из action файла и дописал его в task файл.
{
    list($new, $old) = FilePeer::rescanDirs();    
    $this->getUser()->setFlash('notice', $new . ' файл(ов) добавлено, ' . $old . ' файл(ов) удалено.');
  }

Все готово.
Дальше можно запускать задачу из bash скрипта или из крона.
php symfony task_name
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы