Grundsätzlich solltest du dich fragen, ob du nach den technischen Notwendigkeiten deine Namespaces / Benennung aufbaust oder dich so nah wie möglich an des Geschäftslogik orientierst. Mit Domain Driven Design hast du dich ja anscheinend schon beschäftigst. Grundsätzlich kannst du Doctrine ORM auch andere Pfade für deine Entitäten mitteilen, der Ordner Entity ist halt im Orm-Bundle vordefiniert und funktioniert ohne weitere Konfiguration. Persönlich bin ich ein Verfechter des Domain Driven Design Ansatzes, also möglichst alles anhand der Businesslogik zu organisieren.
Klassen einer Todoliste würde ich beispielsweise folgendermaßen organisieren:
PHP-Code:
namespace App\Model\TodoList
{
final class Todo {}
final class TodoId implements \App\Common\AggregateRootId {}
final class AssignedUserId implements \App\Common\AggregateRootId {}
final class DueDate {}
interface TodoList {}
}
namespace App\Model\Comment
{
final class Comment {}
final class CommentId {}
interface Comments {}
}
namespace App\Doctrine\ORM
{
final class TodoRepository implements \App\Model\TodoList\TodoList {}
final class Comments implements \App\Model\Comment\Comments {}
}
Vielleicht hilft dir das weiter. :-)
Lesezeichen