The Ant
Ну эт всрато, согласен
Kirill
далее, нормально ли что у объекта можно менять дату создания и id?
Роман
будет null
Kirill
будет null
нет, не будет
Kirill
будет фатал эррор
Kirill
и всё упадёт нахер)
Роман
особеность доктрины
Kirill
далее, нормально ли что у объекта можно менять дату создания и id?
это в принципе бред, что у объекта, который создаётся один раз можно менять дату создания
The Ant
далее, нормально ли что у объекта можно менять дату создания и id?
О кстати, уиид геннеришь стратегией при записи, или в конструкторе ентити задаешь?
Роман
да принято в симфони
Роман
создал потом наполняешь данными
Kirill
иначе профит теряется от uuid
Kirill
да принято в симфони
да не принято, это ты выдумал
Kirill
это говнокод для джунов
Kirill
чтоб тупо было понятно и примитивно
Роман
так в доках и курсах
Роман
ну приведи альтернативный код
Kirill
ну если тебе в курсах впаривают говнину, которая забагованная, то что ж поделать)
Kirill
ну приведи альтернативный код
а предметная область какая у этого объекта?
Kirill
задачи его какие?
Роман
что значит сервис для сбора данных по api и формирование отчетов
Роман
просто команды в фоне
Роман
подсчет бронирований отелей
Kirill
короче, ссылка на энтитю выше
Kirill
давай критикуй)
Kirill
найди хоть одну проблему там, которая бы не выскочила сразу как только ты некорректно пользуешься ей
Роман
?
Kirill
?
?
Kirill
ссылка выше
Kirill
ты просил энтитю
Роман
с гита которая с php 8.4?
Kirill
ну да
Юра
Видимо речь идёт про uninitialized property access
Kirill
а ещё Name по хорошему сделать бы VO
Kirill
а ещё у энтити/модели потерялся ID
Kirill
поэтому я и попросил описать предметную область этого персона, т.к. оно там в примере выглядит как DTO
Михаил
давай критикуй)
Фуууу, роли просто списком🌚
Юра
Я как-то на одном проекте энтити делал по принципу, все что не нул, все передавать в конструктор. Мне понравилось, учитывая что есть именованные аргументы в пхп
Kirill
Михаил
Kirill
а дальше симфа сама генерит дерево прав
Kirill
Match true
и что не так в паттерн матчинге?)
Роман
короче ты аналог ларавел create сделал в конструкторе
Kirill
Пм на 1 if
это рефакторить проще, чем тернарники)
Kirill
ну типа добавить туда из строк создание ролей, например
Роман
ну да в ларе всё чётко, а тут примитивно самому надо додумать надо оно или не надо
Роман
я бы сказал что ты нарушил правила entity не должен содержать лишних методов лучше было в репозиторий наверно переместить
Kirill
Фуууу, роли просто списком🌚
а, ну вообще годное замечание
Kirill
можно коллекцией сделать, чтоб можно было: $account->roles->contain(Role::Admin)
Kirill
Какое?
он наверное про статик конструктор
Kirill
который можно двинуть в фектори)
Роман
create метод
Kirill
но только зачем это делать сейчас - хз
Роман
ладно узнаю позднее как пишет лид, а пока буду следовать доке
Nikolay
В доке местами говно
Kirill
не говно, а примитивно, чтоб понятно было всем
Kirill
и это хорошо
Kirill
просто некоторые почему-то считают, что раз в доке написано, то так и надо писать)
Nikolay
и это хорошо
Отчасти, в части случаев так делать не надо
Kirill
и что неинициализацированные поля в объектах - это норма
Роман
#[ORM\Entity(repositoryClass: HotelRepository::class)] #[ORM\Table(name: 'hotels')] // Название таблицы будет преобразовано в множественное число class Hotel { private const DEFAULT_LAST_MODIFICATION = '2022-12-31 21:00:00'; /** * Уникальный цифровой идентификатор записи. Обязательное поле, является AUTO_INCREMENT. Создается автоматически при создании записи. * * @var int|null */ #[ORM\Id] #[ORM\GeneratedValue(strategy: 'AUTO')] #[ORM\Column(type: 'bigint')] private ?int $id = null; /** * Наименование объекта (отель). Обязательное поле, не может быть NULL. * * @var array */ #[ORM\Column(type: 'json')] private array $name; public function __construct(array $name) { $this->setName($name); } /** * Устанавливает наименование объекта (отель/санаторий). * * @param array $name * * @return self */ public function setName(array $name): self { $this->name = $name; return $this; } } new Hotel(['hotel']); такое предлаешь делать?
Kirill
ты докблоки забыл
Kirill
за простой array тебя стат анализатор вздрючит)
Роман
мм?
Kirill
что "мм", где тип у массива?)
Роман
что ты имеешь в виду?
Kirill
эээ, ну что ты не указал тип у массива
Роман
всмысле?
Kirill
в прямом, это массив из булов? интов? объектов?
Роман
разве это требуется в php?
Kirill
у тебя там сейчас array<array-key, mixed>
Роман
и не встречал подобного
Kirill
что может сломать тебе весь код
Kirill
поэтому стат.анализатор будет тебе орать