Как стать автором
Обновить

Комментарии 14

TL;DR Не используйте JMS Serializer

Собственно об этом будет следующая статья. Но все же, интересно услышать ваше мнение, почему вы считаете, что именно не стоит использовать JMS Serializer.
Не первый раз сталкиваюсь с тем, что знающие люде рекомендуют обойтись без JMS Serializer.
Подскажите альтернативы? И пару слов о том, чем он плох. Буду рад услышать. Спасибо.

Nilov_A, когда ожидается следующий материал?
Через неделю, 15 июня.
Я бы предложил fractal как альтернативу.

Это удобно для очень простеньких проектиков. Описал мэппинги и все круто. Но как только задачи становятся посложнее мы даже заметить не успеем как у нас появится свой листенер который фиксит какой-нибудь баг.


Словом я использовал jms serializer с перерывами где-то 2 года, пока мне не надоело. В итоге на мэппинги я тратил примерно сктолько же времени сколько бы потратил напиши все руками. Причем частенько возникали проблемы при возникновении циклических ссылок на двусторонних связях в сущностях, чего можно было бы избежать явно подготовив данные.


А как только появляется необходимость суппортить несколько версий API — жизнь превращается в боль. И вот ты уже вынужден делать слой DTO между сущностями и сериализатором что бы все было хорошо. А при таком раскладе проще взять fractal какой и не париться.


Как альтернатива мне нравится symfony/serializer. Он использует намного более простой подход, используя php как промежуточный формат + нормализаторы. Это позволяет делать все тоже самое но намного проще и более гибко. Можно задавать свои нормализаторы для типов, все явно. Для простых проектов или при наличии DTO оно местами даже проще чем JMS.

Спасибо за ответ.
Наверное стоит удалить это предложение из текста. Иначе это породит бессмысленные холивары.
Да нет же. Просто я занимаюсь довольно плотно разработкой на Yii2 и присматриваюсь к Symfony. Просто интересуюсь мнением человека, который сделал этот переход, без подтекста холивара.

На самом деле в Symfony нет ничего особенного. Во всяком случае в контексте топика (http api), тут любой фреймворк предоставляющий абстракцию от SAPI и имеющий нормальную реализацию IoC будет неплох. Для меня ключевым является Doctrine ORM, которая реально крутая штука и разбираясь в которой я постоянно испытывал восторг и восхищение. Правда опять же это не тот инструмент который подходит в 100% случаев.


В случае с Yii замена любого компонента на что-то получше или просто более подходящее к ситуации вызовет боль. Слишком большая связанность у фреймворка. Попробуйте выкинуть active record и посмотрим что останется. Хотя во второй версии получше, да. В симфони я могу делать что захочу, и при этом без каких-либо кастылей. Многим правда эта гибкость наоборот не нравится. Им хочется что бы все что нужно было из коробки.

Спасибо за мнение.

Можно ведь обсуждать фреймворки и без холиваров :D
Грубо, в Симфони есть всё из коробки, но можно всё это менять на сторонние или свои реализации и это всё равно останется Симфони.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации