Symfony Новая сущность наподобии бандла. (Symfony 2)

d1gi

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

Использовать планируется также как бандл например:
PHP:
$response = $this->forward('AcmeHelloModule:Hello:fancy');

// или как варинт можно так:

$response = $this->forward('Acme/Hello:Hello:fancy');

//хотя первый вариант смотрится симпатичнее ;)
Здесь будет выполнен контроллер HelloController->fancy();, который описан скажем в файле: /src/modules/Acme/Hello/Controller/HelloController.php

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

d1gi

Новичок
хм... т.е. получается, что расширить 2 метода forward() и render(), а также инструкцию extend в шаблонизаторе, это серьёзнейшая задача :(((

переколошматил дампами все кишки... шаблоны резолвятся тут: Symfony\Bundle\FrameworkBundle\Templating\TemplateNameParser->parse($name), но как туда вколупаться, вообще не понимаю :(( даже зацепиться уже ни за что не могу :((
 

d1gi

Новичок
в общем-то нашел некоторое решение, в AppKernel добавляем следующий метод:

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