Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [SF][Symfony2][SF2] Jak wyłączyć usługę dla profiler'a i _wdt
Forum PHP.pl > Forum > PHP > Frameworki
starach
Odnośnie tematu: [SF2][Symfony2] Jak dokleić do widoku generowanego przez kontroler A wynik kontrolera B

Zdecydowałem się napisać usługę dekoratora która odpowiedź kontrolera będzie mi wrzucać w layout.html.twig zamiast rozszerzać za pomocą {% extends ...%} Co pozwoli mi dokleić panel administracyjny.

Niestety uruchamia mi się ona też w przypadku pobierania przez skrypt js trybu dev i w efekcie dolny panel app_dev.php również jest opatulony zawartością pliku layout.html.twig

Jak wyłączyć tą usługę dla adresów url wykorzystywanych przez narzędzia deweloperskie Symfony?
404
Może to Cię naprowadzi: http://stackoverflow.com/questions/7096546...te-in-symfony-2.
Crozin
A możesz napisać co dokładniej zrobiłeś? Bo brzmi to jak "koślawa" implementacja tego, co masz już dostępne - http://symfony.com/doc/current/book/templa...ing-controllers
starach
Cytat(404 @ 25.08.2014, 20:40:49 ) *
Pisząc temat już rozważałem tą metodę, ale uruchamianie kontrolera w widoku jest dla mnie gwałtem logiki biznesowej na warstwie prezentacji. wink.gif

Dodałem do routing_dev.yml
Kod
_wdt:
    resource: "@WebProfilerBundle/Resources/config/routing/wdt.xml"
    prefix:   /_wdt
    options:
        WebsiteBundle.Website: false

_profiler:
    resource: "@WebProfilerBundle/Resources/config/routing/profiler.xml"
    prefix:   /_profiler
    options:
        WebsiteBundle.Website: false


Natomiast metoda mojej usługi prezentuje się następująco.
  1. public function transformResponse(FilterResponseEvent $Event)
  2. {
  3. $routeCollection = $this->Router->getRouteCollection();
  4. $Route = $routeCollection->get($Event->getRequest()->get('_route'));
  5.  
  6. $aData = $this->Website->createRenderArray();
  7. $aData["content"] = $Event->getResponse()->getContent();
  8.  
  9. if($Route && $Route->getOption("WebsiteBundle.Website") !== false) {
  10. $Event->setResponse(new Response($this->Templating->render($this->Website->getLayout(), $aData)));
  11. }
  12. }
  13. // $this->Website->getLayout() <- Tak wiem, że można nadpisywać i w app/Resources i używając dziedziczenia Bundle


Swoją drogą męcząc się z bezsensownymi udziwnieniami w Symfony chciałem się już kilka razy poddać... widać że pisał to francuz... aaevil.gif

edit>
Jak opanuję ten narowisty DIC i konfigurację to możliwe, że to później przeniosę.
Crozin
Cytat
[...] ale uruchamianie kontrolera w widoku jest dla mnie gwałtem logiki biznesowej na warstwie prezentacji
1. Logiki biznesowej nic tutaj nie "psuje/gwałci".
2. Jest to dosyć podstawowy mechanizm tworzenia stron z zhierarchizowanych komponentów.

Przy obecnym rozwiązaniu nie pozostaje Ci właściwie nic innego jak jedno z poniższych:
- jawne wylistowanie reguł (nazwa route'a/bundle'a), dla których ma być dołączony dodatkowy komponent,
- j/w tylko w drugą stronę - jawne wykluczanie,
- zawieranie w szablonie jakiegoś wzoru na podstawie którego dałoby się określić czy dodawać czy nie dodatkowy komponent.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.