Drukowana wersja tematu

Kliknij tu, aby zobaczyć temat w orginalnym formacie

Forum PHP.pl _ Frameworki _ [Symfony]Anemiczna encja

Napisany przez: PawelC 1.09.2019, 20:15:58

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 http://www.php.net/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.

Napisany przez: Pyton_000 2.09.2019, 09:05:03

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_oprogramowania/270322-klasy_encyjne

Napisany przez: destroyerr 2.09.2019, 10:11:59

Dlaczego chcesz unikać anemicznych encji w CRUDzie?

Napisany przez: PawelC 2.09.2019, 12:51:31

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

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)