Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Symfony2, Dostęp do services poza kontrolerem
owca_82
post
Post #1





Grupa: Zarejestrowani
Postów: 77
Pomógł: 8
Dołączył: 22.04.2012

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


Witam.

Mam pytanie do wymiataczy Symfony2 - jak pobrać jakąś usługę poza kontrolerem ?
Przeszukałem całą dokumentację, pogrzebałem w "wujku goolge" i znalazlem tylko jedno niezbyt ładne rozwiązanie poprzez globalną zmienną $karnel

Kurde taka prosta sprawa w tymi usługami, a tak "glupio" rozwiązana w tym frameworku (IMG:style_emoticons/default/sad.gif)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
owca_82
post
Post #2





Grupa: Zarejestrowani
Postów: 77
Pomógł: 8
Dołączył: 22.04.2012

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


No nie wiem może ja robię coś źle :/

Jak najbardziej może być tak jak piszesz że mogę z kontrolera przekazać managera do danego obiektu z tym że w tym drugim obiekcie mam referencję do innego obiektu (tworzonego w konstruktorze tego pierwszego) z którego to własnie potrzebuję dostać się do bazy.

Czyli musiał bym przekazywać DoctrinManager'a dwa poziomy w dół, a to mi się nie za bardzo podoba ?
Go to the top of the page
+Quote Post
ohm
post
Post #3





Grupa: Zarejestrowani
Postów: 623
Pomógł: 144
Dołączył: 22.12.2010

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


Cytat(owca_82 @ 16.07.2015, 12:22:34 ) *
Czyli musiał bym przekazywać DoctrinManager'a dwa poziomy w dół, a to mi się nie za bardzo podoba ?


A czemu by nie? Swoją drogą, jak coś się zaczyna sypać, to widocznie aplikacja była źle zaprojektowana pod framework (IMG:style_emoticons/default/wink.gif)
Go to the top of the page
+Quote Post
Dejmien_85
post
Post #4





Grupa: Zarejestrowani
Postów: 251
Pomógł: 23
Dołączył: 23.04.2013

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


Cytat(ohm @ 16.07.2015, 13:13:54 ) *
A czemu by nie? Swoją drogą, jak coś się zaczyna sypać, to widocznie aplikacja była źle zaprojektowana pod framework (IMG:style_emoticons/default/wink.gif)


Po pierwsze, jest to łamanie świętych zasad SOLID.

Poza tym widać, że książki do Symfony to nawet nie widziałeś na oczy - jest w niej jasno napisane, że aplikacja powinna być całkowicie niezależna od frameworka, a nie pisana pod framework (sic!).
Jest nawet wspomniane to, aby Doctrina nie przekazywać do żadnych klas biznesowych, bo uzależni to biznes od frameworka.

Bazę w klasach powinno obsługiwać repozytorium (a nie Doctrine), które można sobie wstrzyknąć do danej klasy.

Jeśli kolega tutaj ma jedną klasę, która zarządza innymi, to wystarczy zrobić tą "główną" klasę jako serwis, następnie wstrzyknąć do niego wszelkie zależności.
Jeśli jakaś z zależności wymaga dostępu do bazy, to robimy ją jako serwis, wstrzykujemy repozytorium i wrzucamy do "serwisu zarządzającego".

To najprostsza droga do uzyskania w miarę dobrego poziomu decouplingu, są też inne ciekawe rozwiązania "architektury cebulowej", ale raczej
nie ma sensu w tym wypadku się nad nimi rozwodzić.

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: 15.10.2025 - 20:20