Архитектура разрешений сущностей API - PullRequest
0 голосов
/ 16 апреля 2020

Я использую 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)
}

Итак, я спрашиваю ваше мнение и опыт по этому поводу?

Что такое правильная архитектура? И если это второе, то должна ли правильная архитектура преобладать над текучестью кодирования?

...