Paweł Koralewski

Paweł Koralewski architekt aplikacji,
team leader

Temat: [Sf2] usługa vs klasa w globalnym namespace

Nie bardzo jestem w stanie wywnioskować, jakie są korzyści z korzystania z usług w porównaniu z funkcjonalnościami, które zawarłbym w pojedynczej, zamkniętej (przetestowanej, działającej) klasie - Singletonie, która byłaby dostępna w globalnej przestrzeni nazw:
$x = \x::getInstance();

Gdy mam klasę, to mam podpowiedzi kontekstowe w IDE, gdy jest to usługa, to mam:
$x = $this->get('x');
/* @var \x $x */ //czy jakoś tak

i tak bym musiał w każdym tworzeniu $x pisać.

Temat: [Sf2] usługa vs klasa w globalnym namespace

Wg mnie korzystając z usług masz bardziej jednolity interfejs za pomocą którego możesz pobierać różne usługi korzystając z jeden metody. W przypadku gdybyś tworzył takie namespace jak podałeś będą w sposób przemyślany bądź nie, dochodzić do rozbieżności i zamieszania.

Podsumowując wydaje mi się, że korzystanie z usług będzie lepiej uzasadnione architektonicznie ;)
Krzysztof N.

Krzysztof N. CEO. Aplikacje
internetowe i
mobilne. Symfony,
Zend.

Temat: [Sf2] usługa vs klasa w globalnym namespace

Paweł Koralewski:
Nie bardzo jestem w stanie wywnioskować, jakie są korzyści z korzystania z usług w porównaniu z funkcjonalnościami, które zawarłbym w pojedynczej, zamkniętej (przetestowanej, działającej) klasie - Singletonie
Moim zdaniem, które popieram fragmentem dokumentacji What is a Service?, usługa to element bardziej elastyczny. Dzięki niej otrzymujesz niezależny fragment kodu, który możesz wydzielić ze swojej aplikacji. Wywołujesz jakąś usługę, jej metodę i otrzymujesz efekt. I tyle. Nie martwisz się o położenie pliku, namespace etc.
Paweł Koralewski

Paweł Koralewski architekt aplikacji,
team leader

Temat: [Sf2] usługa vs klasa w globalnym namespace

Krzysztof N.:
Nie martwisz się o położenie pliku, namespace etc.

To mnie przekonuje :)
Wojciech Sznapka

Wojciech Sznapka CTO @ STS Zakłady
Bukmacherskie

Temat: [Sf2] usługa vs klasa w globalnym namespace

Poza tym serwis/usługę możesz podmienić w konfiguracji dla innego środowiska, np testowego (można mock'ować serwisy), przy Singletonie musiałbyś wylać wiele łez, żeby to uzyskać ;-)

Następna dyskusja:

sf2 i użycie akcji w layout




Wyślij zaproszenie do