За последние 24 часа нас посетили 23674 программиста и 1545 роботов. Сейчас ищут 1000 программистов ...

Symfony2. Новая сущность наподобии бандла.

Тема в разделе "Прочие вопросы по PHP", создана пользователем d1gi, 12 июн 2012.

  1. d1gi

    d1gi Активный пользователь

    С нами с:
    24 май 2009
    Сообщения:
    326
    Симпатии:
    0
    Для написании динамической системы, потребовалось ввести новую сущность - «Модуль». В отличие от бандла, проект на момент запуска не знает с какими модулями будет работать и как они должны быть скорфигурированы.

    Использовать планируется также как бандл например:
    Код (PHP):
    1. $response = $this->forward('AcmeHelloModule:Hello:fancy');
    2.  
    3. // или как варинт можно так:
    4.  
    5. $response = $this->forward('Acme/Hello:Hello:fancy');
    6.  
    7. //хотя первый вариант смотрится симпатичнее ;)
    8.  
    Здесь будет выполнен контроллер HelloController->fancyAction();, который описан скажем в файле: /src/modules/Acme/Hello/Controller/HelloController.php

    Вопрос заключаетс в том, как это сделать? :)
     
  2. d1gi

    d1gi Активный пользователь

    С нами с:
    24 май 2009
    Сообщения:
    326
    Симпатии:
    0
    в общем-то нашел некоторое решение, в AppKernel добавляем следующий метод:

    Код (PHP):
    1. public function getBundle($name, $first = true)
    2. {
    3.     if (substr($name, -6) == 'Module')) {
    4.         return $this->getBundle('ModuleBundle')->getModule($name, $first);
    5.     }
    6.         
    7.     return parent::getBundle($name, $first);
    8. } 
    а в ModuleBundle уже реализуем всю логику, но разумеется чтобы по формату ответа соотвествовало Kernel->getBundle();