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 13.01.2021, 20:31:18
Post #2





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

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


Tworząc nowy projekt Symfony zasugerował Ci w jakich folderach masz tworzyć klasy, masz w src folder Entity on jest na Encje.

Wcześniej rozpisałem Tobie gdzie jakie pliki mają trafiać a Ty wrzucasz wsio do jednego GARA czyli do foldery Service

folder src/Service zawiera tylko Klasy Serwisów

Symfony oferuje generatory, nie musisz NIC programować, Symfony zrobi to za Ciebie, ty tylko musisz wiedzieć jakie pola chcesz mieć w aplikacji.

Jak już to Symfony zrobi za Ciebie możesz sobie to dopasować do Swoich potrzeb ale na start proponuję skorzystać z generatorów, przeanalizować kod i na podstawie kodu generatora możesz klepać kod ręcznie co moim zdaniem jest niepotrzebne jak już wiesz na czym to polega.

Ja jadę cały czas na generatorach jako bazie kodu, resztę dopisuje ręcznie.

Dodaj sobie generatory do aplikacji

Kod
composer require make -dev


Generator Encji to

Kod
php bin/console make:entity


Generator poprowadzi Cię za rączkę

Jeśli chcesz sprawdzić jakie są generatory to służy do tego komenda:

Kod
php bin/console make


Ale najpierw zrób sobie Qlturalne Encje za pomocą generatora, od razu będziesz miał wygenerowane Repozytoria to Encji to dzieje się z automatu. Repozytorium Encji jest NIEZBĘDNE bez tego nie wyobrażam sobie korzystania z apki.

proponuje zmienić nazewnictwo
nie IPocket tylko PocketInterface
nie CPocket tylko PocketService

Poza tym wszystkie klasy z jakich korzystasz dodaj do use

jest

  1. <?php
  2.  
  3. namespace App\Service\Logic;
  4.  
  5. use App\Service\Entities\Item;
  6.  
  7. class CPocket implements \App\Service\Interfaces\IPocket



  1.  
  2. powinno być
  3.  
  4. <?php
  5.  
  6. namespace App\Service\Logic;
  7.  
  8. use App\Service\Entities\Item;
  9. use App\Service\Interfaces\IPocket;
  10.  
  11. class CPocket implements IPocket


pomijam to że nie są to odpowiednie foldery

Ten post edytował LowiczakPL 13.01.2021, 20:39:17


--------------------
Szukam zleceń Symfony, Laravel, Back-End, Front-End, PHP, MySQL ...
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.03.2024 - 12:40