Я использую Symfony для большого веб-приложения, и я начинаю задумываться об архитектуре сущностей и разрешений, связанных с.
У меня много методов разрешений, связанных с сущностями, которые организованы так:
Entities\User\User extends Entities\User\UserPermissions
Я знаю, что сущности должны отражать только то, что находится в базе данных, но это позволяет мне создавать быстрый и очень понятный код:
$user = new User();
$file = new File();
if ($file->canUserSend($user))
{
$this->send($file)
}
И я знаю, что обычные архитектуры более или менее действуют следующим образом:
$user = new User();
$file = new File();
use Authority;
if (Authority::can('userSendFile', [ 'user' => $user, 'file' => $file ]))
{
$this->send($file)
}
Итак, я спрашиваю ваше мнение и опыт по этому поводу?
Что такое правильная архитектура? И если это второе, то должна ли правильная архитектура преобладать над текучестью кодирования?