Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [Symfony][Symfony2] Jak dostać serwis (dependency injection) z nie-kontrolera?
Forum PHP.pl > Forum > PHP > Frameworki
rcetra
Witam,

mam kłopot polegający na tym, że zrobiłem sobie serwis, wszystko super, hula jak jestem w kontrolerze. Robię go sobie za pomocą $this->get('nazwa');

Używam pakietu FOSUserBundle, gdzie u siebie nadpisuję kontroler logowania. Tam próbuję pobrać ten serwis za pomocą $this->get('nazwa') i PHP krzyczy, że:

Fatal error: Call to undefined method BDK\UserBundle\Controller\SecurityController::get() in D:\development\sfprojects\tlumacz\src\BDK\UserBundle\Controller\SecurityController.php on line 42

Jak pobrać serwis w tym miejscu?

--
Prawidłowa odpowiedź: $this->container->get('nazwa');
strife
W starszych wersjach Symfony, jeżeli chciałeś się dobrać do kontrolera z poziomu miejsca, w którym nie było zasięgu to robiło się to poprzez Singleton'a albo jeszcze w tej sposób?:

  1. $controller = $this->getController()->get('nazwa');


Ja bym kopał w tym kierunku ; )
rcetra
Niestety, to jeszcze nie to:

Fatal error: Call to undefined method BDK\UserBundle\Controller\SecurityController::getController() in D:\development\sfprojects\tlumacz\src\BDK\UserBundle\Controller\SecurityController.php on line 42

właśnie nie wiem jak się dostać do środowiska :-(

No nic, to po prostu jakieś zamroczenie było. Prawidłowo:

$serwis = $this->container->get('nazwa');

Przepraszam za głupie pytanie.

Dobra, to jednak było głupie pytanie, odpowiedź była kilka linii wyżej:

$serwis = $this->container->get('nazwa');
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.