Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [Symfony][OOP]Gdzie umieścić złożoną logikę - kilka klas zgodnych z SOLID?
mathieus
post 9.01.2021, 11:12:34
Post #1





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 9.01.2021

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


Witam,

mam kilka klas połącząnych, załóżmy, według wzorca Mediator,
który skłąda się z conajmniej dwóch interfejsów i 4 klas.
Jak wiadomo, standardem jest: jedna klasa, jeden plik.
Gdzie umieścić te pliki i jak łączyć klasy zgodnie ze standardami?:

  • w tym samym katalogu co kontrolery?
  • w osobnym podkatalogu katalogu src?
  • jako service? jak wtedy ogarnąć kilka klas?
  • jako biblioteka? z tym to zupełnie nie wiem jak - bardzo byłbym rad za wskazówki (np. link do opisu w internecie)...


z góry dziękuję za wskazówki.
Pozdrawiam
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
LowiczakPL
post 11.01.2021, 22:18:39
Post #2





Grupa: Zarejestrowani
Postów: 531
Pomógł: 55
Dołączył: 3.01.2016
Skąd: Łowicz

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


Mediator to serwis, który jest np. w folderze src/Service, ja tak grupuję serwisy.

Mam projekty, które mają sporo serwisów/kontrolerów, więc nie przejmuj się ilością plików dasz radę to ogarnąć.

U mnie często klasa ma swoją unikalną nazwę z sufixem zależnym od tego czym jest, czyli np:

src/Service/MediatorService.php
src/Interface/MediatorInterface,php
src/Abstract/MediatorAbstract.php
src/Helper/MediatorHelper.php
src/Manager/MediatorManager.php
src/Event/MediatorEvent.php

Taki sufix ułatwia mi DI i łatwiejsze rozeznanie się w kodzie.

Cytat(mathieus @ 9.01.2021, 11:12:34 ) *
mam kilka klas połącząnych, załóżmy, według wzorca Mediator,
...
Gdzie umieścić te pliki i jak łączyć klasy zgodnie ze standardami?:


Piszesz że masz połączone, a jednocześnie pytasz się jak łączyć?

Chodzi Ci o to jak wstrzyknąć je do Serwisu a następnie jak wywołać serwis w kontrolerze?


Ten post edytował LowiczakPL 11.01.2021, 22:24:47


--------------------
Szukam zleceń Symfony, Laravel, Back-End, Front-End, PHP, MySQL ...
Go to the top of the page
+Quote Post
mathieus
post 12.01.2021, 19:32:10
Post #3





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 9.01.2021

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


Bardzo dziękuję za odpowiedź.

Mediator podałem jako przykład na którym się wzorowałem. Chodzi o dowolny system klas. To co mam to nie jest mediator, tylko taki schemat (pewnie to nie żaden wzorzec):

Kolejność działań (wraz z kodem) jest opisana tutaj:
Link do aplikacji (github.pl)
opis wywołań jest w podkatalogu Tests.

Cytat(LowiczakPL @ 11.01.2021, 22:18:39 ) *
src/Service/MediatorService.php
src/Interface/MediatorInterface,php
src/Abstract/MediatorAbstract.php
src/Helper/MediatorHelper.php
src/Manager/MediatorManager.php
src/Event/MediatorEvent.php

Taki sufix ułatwia mi DI i łatwiejsze rozeznanie się w kodzie.

jeśli się da, to spróbuję dać te podkatalogi do podkatalogu src/Service lub jeszcze innego.

Cytat(LowiczakPL @ 11.01.2021, 22:18:39 ) *
Piszesz że masz połączone, a jednocześnie pytasz się jak łączyć?

Mam połączone ze sobą, ale bez Symfony. W czystym PHP na klasach, z Twig'iem.
Cytat(LowiczakPL @ 11.01.2021, 22:18:39 ) *
Chodzi Ci o to jak wstrzyknąć je do Serwisu a następnie jak wywołać serwis w kontrolerze?

dokładnie. W ciągu kilku dni (obecnie nie mam zbytnio czasu) postaram dostarczyć do oceny rozwiązanie według Twoich wskazówek, ale czuję że będę miał jeszcze pytania (jeśli nię męczę za bardzo...).

jeszcze raz dziękuję i pozdrawiam.
Go to the top of the page
+Quote Post

Posty w temacie


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: 28.04.2024 - 03:03