Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [SF][Symfony][Symfony2] Czy zarejestrować klasę jako service?
404
post
Post #1





Grupa: Zarejestrowani
Postów: 226
Pomógł: 25
Dołączył: 22.05.2011

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


Witam,

w AdministrationBundle mam 3 klasy: NavigationMenu, NavigationMenuItem i NavigationMenuLoader. Klasa NavigationMenuLoader odpowiada za ładowanie menu z pliku YAML. Podczas parsowania tego pliku tworzy obiekty NavigationMenu i NavigationMenuItem. Mniej więcej wygląda to tak:
  1. $navigationMenu = new NavigationMenu();
  2. // ...
  3. for(/* ... */) {
  4. $navigationMenuItem = new NavigationMenuItem();
  5. $navigationMenuItem->setTitle($data['title']);
  6.  
  7. $items[] = $navigationMenuItem;
  8. }
  9. // ...
  10. $navigationMenu->setItems($items);
Zastanawiam się, czy powinienem te klasy rejestrować jako usługi. Gdybym tak zrobił musiałbym ustawić ich scope na prototype, a do NavigationMenuLoader przekazać container i odwoływać się na zasadzie:
  1. $navigationMenu = $this->container->get('navigation_menu');
  2. // ...
  3. for(/* ... */) {
  4. $navigationMenuItem = $this->container->get('navigation_menu_item');
  5. $navigationMenuItem->setTitle($data['title']);
  6.  
  7. $items[] = $navigationMenuItem;
  8. }
  9. // ...
  10. $navigationMenu->setItems($items);

Dodam, iż te klasy nie będą wykorzystywane w żadnym innym bundle.

Ten post edytował 404 9.09.2014, 19:33:01
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
skowron-line
post
Post #2





Grupa: Zarejestrowani
Postów: 4 340
Pomógł: 542
Dołączył: 15.01.2006
Skąd: Olsztyn/Warszawa

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


http://symfony.com/doc/current/cookbook/se...standing-scopes

polecam do servicow i routingu pliki xml jest podpowiadanie skladni (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 5.10.2025 - 14:15