BoShurik, проблема в том, что у апи есть обязательные и необязательные параметры + дто-экшн, по моему мнению, должен быть иммутабельным, поэтому появились билдеры, которые решают помогают достичь этого
1. Я просто думал потом эти константы на Enum переделать, поэтому завел отдельную папку. Но пока согласен, наверное папка ни к чему.
2. Про билдеры от части вы правы, в данном случае они решают проблему, когда у нас есть очень много необязательный параметров у класса, и мы не можем просто так затолкать их все в конструктор (там только обязательные).
При этом хочется сохранить иммутабельность класса-действия.
3. Есть такое. Попробую переделать.
4. Смысл того эксепшена в том, чтобы пользователь мог его отловить, вытащить десериализованный ответ и нормально обработать его. Поэтмоу я и затолкал его в конструктор.
5. Про дублирование в редакторе
6. Так исторически сложилось) Сначала думал, что можно сделать один метод (общий), на вход которого просто подается ДТО - класс действие. Но потом понял, что это будет очень путать. Основная идея этий экшенов и билдеров, чтобы разработчику не надо было идти в документацию за описанием параметров. Типо хочешь отправить сообщение, создаешь билдер, в нем сразу видно обязательные параметры. По желанию через сеттеры добавил туда еще всякого. Сбилдил и рехультат билда закинул в метод. Готово.
Честно говоря я этот клиент писал сначала под свои нужды, но потом увлекся, на все забил и делал только его, так что я пока еще не знаю на сколько удобно его использовать :))
Вообще большое спасибо за такую рецению! Буду еще перечитывать и думать :)
Меня просто смущает написание тестов для контроллера через "$client->request('GET', '/')", а так как логики не много, то выносить все в сервисы не имеет смысла. Спасибо за ответ)
sim3x: ну одна из проблем адаптивной верстки - нужно ее делать сразу. Сейчас есть десктопная версия, которая давно работает и в которой ничего такого не было предусмотрено. Так что в моем случае проще сделать именно мобильную версию.