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
<?php namespace App\Entity; use Doctrine\ORM\Mapping as ORM; use Symfony\Component\Validator\Constraints as http://www.php.net/assert; /** * @ORM\Entity(repositoryClass="App\Repository\PostRepository") */ class Post { /** * @ORM\Id() * @ORM\GeneratedValue() * @ORM\Column(type="integer") */ private $id; /** * @ORM\Column(type="string", length=255) * @Assert\NotBlank() */ private $title; /** * @ORM\Column(type="string", length=255) * @Assert\NotBlank() */ private $content; /** * @ORM\Column(type="string", length=255) * @Assert\NotBlank() */ private $author; public function getId(): ?int { return $this->id; } public function getTitle(): ?string { return $this->title; } public function setTitle(string $title): self { $this->title = $title; return $this; } public function getContent(): ?string { return $this->content; } public function setContent(string $content): self { $this->content = $content; return $this; } public function getAuthor(): ?string { return $this->author; } public function setAuthor(string $author): self { $this->author = $author; return $this; } }
Anemic Domain Model jest tym czego szukasz aby opdpowiedzieć na swoje pytanie
Tu masz dyskusję na ten temat (W prawdzie Java ale nie ma to znaczenia)
https://4programmers.net/Forum/Inzynieria_oprogramowania/270322-klasy_encyjne
Dlaczego chcesz unikać anemicznych encji w CRUDzie?
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ś
Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)