RESURT, поможет.
Вы хотите чтобы поле соблюдало хотя бы одно из двух правил валидации:
- строка пустая
- строка необходимой длины И соответствует регулярному выражению.
AtLeastOneOf позволяет реализовать логику одно из . All позволяет объединить ограничения по длине И регулярной в одно правило.
Т.е. в IDE в подсказках методов не видно, но они есть и их можно вызвать.
PHP не идеален, да. Но стат-анализаторы вроде Psalm и PHPStan на такое будут ругаться и не пропустят.
Не совсем понимаю зачем тут ещё какие-то костыли кроме интерфейса - если пользователь сильно захочет вызвать приватный метод, он все равно это сделает, всегда можно вызвать через рефлексию или скопипастить в конце концов.
web_beginner, подробнее.
Для меня Symfony был первым взрослым PHP-фреймворком после всяких самописов и CMS. На этом можно было бы и закончить.
Нравится гибкость его архитектуры. Пока удавалось воплощать все извращения которые хотелось на него натянуть.
Какашечных проектов на нем пока не встречал, чего не могу сказать о Laravel.
Ну и ORM. Doctrine'овский DataMapper куда больше соответствует моим DDD-шным потребностям чем Eloquent-овый ActiveRecord. Хотя проекты с использованием Laravel вместе с Doctrine тоже видел, и к ним у меня претензий было куда меньше.
Либо вообще PHP представляет из себя всего лишь API, а фронт это отдельное приложение на каком-нибудь JS, работающее с этим API.