Myroslav Berlad: благодарю за ссылку, читал. Они предлагают валидацию вынести в отдельный объект. Но это же позволит создать невалидную сущность, и, как утверждают отцы DDD, в конечном счёте приведёт к анемичной модели. Где бы посмотреть на реальные примеры применения ddd пусть даже не на php?
Алексей Скобкин: огромное спасибо, понял что очень холиварная тема и нужно не парится и делать как удобнее.
Ввсегда валидная сущность неоправданно дорого. Берём Symfony Validator, в сущности пишем правила валидации и валидируем в контроллере и в репозитории при сохранении на случай с выкидыванием исключения в случае ошибок, если программист зевнул.
Symfony Validator Component мне всем нравится. Есть одно но, в рамках DDD мы должны запретить программисту создать невалидный объект и не дать перевести уже созданный объект в невалидное состояние. Аргумент для такого рода ограничения - это упрощение создания большой сложной системы, чтобы не думать о том что нам могут подсунуть невалидный объект. Возможно я неправильно истолковал DDD или это только всё хорошо в теории и не нужно так заморачиваться, а сделать валидацию на уровне контроллера при создании/изменении объекта и в репозитории перед сохранением? На каком уровне принято валидировать корректность атрибутов объекта?
Благодарю! Действительно виноват systemd. Нужно в файле /etc/systemd/system/multi-user.target.wants/redis-server.service в секцию [Service] добавить LimitNOFILE=10032 или больше, чтобы потом не искать