Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [Symfony]Anemiczna encja
PawelC
post 1.09.2019, 20:15:58
Post #1





Grupa: Zarejestrowani
Postów: 1 173
Pomógł: 121
Dołączył: 24.09.2007
Skąd: Toruń

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


Witam,
Piszę API w Symfony 4. Znajomy mi napisał, że mam anemiczną encję, możecie mi wyjaśnić co to znaczy i jak zrobić encję, aby nie była anemiczna? Kod encji
  1. <?php
  2. namespace App\Entity;
  3. use Doctrine\ORM\Mapping as ORM;
  4. use Symfony\Component\Validator\Constraints as Assert;
  5. /**
  6.  * @ORM\Entity(repositoryClass="App\Repository\PostRepository")
  7.  */
  8. class Post
  9. {
  10. /**
  11.   * @ORM\Id()
  12.   * @ORM\GeneratedValue()
  13.   * @ORM\Column(type="integer")
  14.   */
  15. private $id;
  16. /**
  17.   * @ORM\Column(type="string", length=255)
  18.   * @Assert\NotBlank()
  19.   */
  20. private $title;
  21. /**
  22.   * @ORM\Column(type="string", length=255)
  23.   * @Assert\NotBlank()
  24.   */
  25. private $content;
  26. /**
  27.   * @ORM\Column(type="string", length=255)
  28.   * @Assert\NotBlank()
  29.   */
  30. private $author;
  31. public function getId(): ?int
  32. {
  33. return $this->id;
  34. }
  35. public function getTitle(): ?string
  36. {
  37. return $this->title;
  38. }
  39. public function setTitle(string $title): self
  40. {
  41. $this->title = $title;
  42. return $this;
  43. }
  44. public function getContent(): ?string
  45. {
  46. return $this->content;
  47. }
  48. public function setContent(string $content): self
  49. {
  50. $this->content = $content;
  51. return $this;
  52. }
  53. public function getAuthor(): ?string
  54. {
  55. return $this->author;
  56. }
  57. public function setAuthor(string $author): self
  58. {
  59. $this->author = $author;
  60. return $this;
  61. }
  62. }


Chcę napisać prosty CRUD, ale taki który ma jakość, a nie byle bałagan bez dobrych praktyk i standardów, dlatego już teraz chciałbym uniknąć anemicznych encji.
Go to the top of the page
+Quote Post
Pyton_000
post 2.09.2019, 09:05:03
Post #2





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

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


Anemic Domain Model jest tym czego szukasz aby opdpowiedzieć na swoje pytanie smile.gif

Tu masz dyskusję na ten temat (W prawdzie Java ale nie ma to znaczenia)
https://4programmers.net/Forum/Inzynieria_o...2-klasy_encyjne

Ten post edytował Pyton_000 2.09.2019, 09:09:34
Go to the top of the page
+Quote Post
destroyerr
post 2.09.2019, 10:11:59
Post #3





Grupa: Zarejestrowani
Postów: 879
Pomógł: 189
Dołączył: 14.06.2006
Skąd: Bytom

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


Dlaczego chcesz unikać anemicznych encji w CRUDzie?
Go to the top of the page
+Quote Post
PawelC
post 2.09.2019, 12:51:31
Post #4





Grupa: Zarejestrowani
Postów: 1 173
Pomógł: 121
Dołączył: 24.09.2007
Skąd: Toruń

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


Ja nie chcę ich unikać bo dla mnie są bardzo wygodne, ale już któraś rozmowa z rzędu i za każdym razem dostaję info, że nie powinienem używać anemicznych encji.

Piszę w symfony 4, i chciałbym pisać jak najlepszej jakości kod, zawsze to było baza -> repozytorium-> controller, bardzo często repo było użyte w kontrolerze. Obecnie robię baza -> repozytorium -> serwis -> controller, można zobaczyć to tutaj: https://github.com/PawelCyrklaf/api-symfony

Problem w tym, że symfony znam w miarę, ale moja jakość kodu pozostawia podobno wiele do życzenia i na podstawie tego, jestem skreślany, dlatego chciałbym jak najbardziej podnieść jego jakość. Pod linkiem który podałem można zobaczyć sobie "jakość" kodu i ocenić. Jest kontroler, encja i 2 serwisy, ale zawsze to coś biggrin.gif
Go to the top of the page
+Quote Post

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 - 18:49