Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Kontrolery i serwisy aplikacji
eerie
post
Post #1





Grupa: Zarejestrowani
Postów: 114
Pomógł: 0
Dołączył: 3.08.2017

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


Siedzę już godzinę na forum i nie znalazłem odpowiedzi na nurtujące mnie pytanie...

Gdy zaczynałem programować obiektowo w PHP, umieszczałem całą logikę biznesową w kontrolerach. Zwrócono mi na tym forum uwagę, iż nie jest to poprawne. Że kontroler powinien tworzyć jedynie potrzebne obiekty i wstrzykiwać je do serwisu aplikacji. Cała logika biznesowa powinna być wykonywana w takim serwisie. Potem znalazłem ciekawy artykuł na ten temat i ma to sens:

http://adam.wroclaw.pl/2016/04/serwis-serwisowi-nierowny/

Oto prosty przykład, jak obecnie tworzę kontrolery:

https://github.com/webeeq/symfony.eeq/blob/...eController.php

Oraz serwisy:

https://github.com/webeeq/symfony.eeq/blob/...SiteService.php

Jednak spotkałem się z opinia programisty ASP.NET, że takie przerzucanie wszystkiego z kontrolera do serwisu nie jest wcale takie poprawne. Inny programista PHP podał mi przykład aplikacji, która w ogóle nie korzysta z serwisów aplikacji. Więc jak to jest? Jak tworzyć aplikację webową w PHP, aby było poprawnie? Prosiłbym o jakiś link do repozytorium z przykładowym kodem. U mnie w serwisach aplikacji faktycznie jest lekki bałagan i nie wygląda to dobrze. Jak to powinienem wykonywać poprawnie? (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
netir
post
Post #2





Grupa: Zarejestrowani
Postów: 45
Pomógł: 5
Dołączył: 20.05.2019

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


Nie znam zbyt dobrze Symfony, ale z tego co widzę to masz wszystko pomieszane - https://symfony.com/doc/current/service_con...autowiring.html

Powinieneś zrobić interfejs zaimplementować go pod Service i wstrzyknąć interfejs do Controllera. Sam service nie powinien robić żadnej walidacji, tylko spełniać jakieś jedno określone zadanie, tak żebyś mógł go wstrzykiwać w dowolne miejsca w myśl DRY.
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: 10.10.2025 - 15:17