HMVC w Symfony

Tak. Zaczęłam miesiąc temu swoją przygodę z Symfony. Długo trzymałam się z daleka od tego frameworka. Dziś właściwie nie wiem z jakie były powody mojego postępowania. Życie mnie przymusiło, żeby się jednak z nim zapoznać i prawdę mówiąc, nie żałuję. Oczywiście nie ma dnia, żebym nie zmagała się z zupełnie nowymi dla mnie zagadnieniami. Ot choćby wykorzystanie wzorca HMVC. Wydawałoby się bułka z masłem. W szablonach Twig z których korzystam jest możliwość renderowania wybranej akcji dowolnego kontrolera.


Dokumentacja mówi co następuje:

<div id="sidebar">
    {{ render(controller(
        'AppBundle:Article:recentArticles',
        { 'max': 3 }
    )) }}
</div>

gdzie Article to nazwa wybranego kontrolera (w pliku AppBundle/ArticleController) a recentArticles to metoda tego kontrolera którą chcemy uruchomić i wyrenderować to co ona zwróci.

Człowiek już zaciera ręce ciesząc się, że pójdzie gładko. A gdzie tam! Kłamią! W dokumentacji jest błąd. Trochę się naszukałam, żeby znaleźć informację, że dla wersji 3.2 i poniżej taki zapis zadziała. Za to dla wersji od 3.3 w górę trzeba inaczej, bo tak:

{{ render(controller(
    'AppBundle\\Controller\\ArticleController:recentArticlesAction', 
    {'max': 3}
)) }}

Niestety zapomnieli o tym wspomnieć w dokumentacji. No to się z Wami dzielę, żebyście długo nie szukali.

6 komentarzy do wpisu „HMVC w Symfony”

  1. Taka rada profilaktyczna, jeśli nie masz przymusu użycia akcji z kontrolera, to nie używaj. Od rzeczy globalnych są Twig Extensions :)

Leave a Reply

%d bloggers like this: