Pull to refresh

Comments 14

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

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

Nilov_A, когда ожидается следующий материал?
Через неделю, 15 июня.

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


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


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


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

А в чём конкретно выражалось «урааа» от перехода с Yii на Symfony? Я полагаю, что речь шла о Yii первой версии, а не второй?
Наверное стоит удалить это предложение из текста. Иначе это породит бессмысленные холивары.
Да нет же. Просто я занимаюсь довольно плотно разработкой на Yii2 и присматриваюсь к Symfony. Просто интересуюсь мнением человека, который сделал этот переход, без подтекста холивара.

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


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

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

Можно ведь обсуждать фреймворки и без холиваров :D
Грубо, в Симфони есть всё из коробки, но можно всё это менять на сторонние или свои реализации и это всё равно останется Симфони.
Sign up to leave a comment.

Articles