Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [Symfony][Symfony2] Jak dostać serwis (dependency injection) z nie-kontrolera?
rcetra
post 31.01.2012, 11:56:24
Post #1





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 16.12.2011

Ostrzeżenie: (0%)
-----


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');

Ten post edytował rcetra 31.01.2012, 12:20:34
Go to the top of the page
+Quote Post
strife
post 31.01.2012, 12:02:53
Post #2





Grupa: Przyjaciele php.pl
Postów: 2 605
Pomógł: 96
Dołączył: 22.10.2004
Skąd: UK

Ostrzeżenie: (0%)
-----


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 ; )
Powód edycji: [strife]:


--------------------
Go to the top of the page
+Quote Post
rcetra
post 31.01.2012, 12:19:26
Post #3





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 16.12.2011

Ostrzeżenie: (0%)
-----


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');
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 13.06.2025 - 07:18