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

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

symfony (со строчной буквы) — это древнее legacy под PHP 5.3 (хотя есть неофициальный форк до 7.2 включительно точно), современный скелет, фреймворк и набор компонентов — это Symfony. Думал пост о переходе на него :)

А использовались сессии на проекте где-то в глубине? Чаще всего с ними больше всего проблем при переходе из всех суперглобалов, поскольку они активно модифицируются.
*о переходе на symfony, aka symfony1
Исправил. Спасибо. Мы, ларавельщики, такой тонкой разницы не чувствуем.
Вы серьёзно не особо чувствуете разницу между Symfony разных мажорных версий?!
По опыту перехода по всем версиям, начиная с 1.2 до 4.0 с разным шагом на разных проектах, только с 1.* на 2.0 проблемы были серьёзные, что на годы затягивалось, собственно полная смена фреймворка и ActiveRecord на DataMapper.
Я про case sensitive названий :)
А почему был выбран Symfony? а не Laravel?
Для аутентификации и для сохранения форм фильтров. Не припомню, каких-то особых проблем с сессией. Сложнее security было натянуть на существующую логику авторизации.
НЛО прилетело и опубликовало эту надпись здесь
Двое нас, полгода примерно. Без фичефриза.
НЛО прилетело и опубликовало эту надпись здесь
Не секрет
Файлов 281
LoC 89058
LLoC 41695
Классов 126 (из них абстрактный только один)

Юнит-тестирование было практически невозможным, использовали Сodeception и Selenium. Про тестирование легаси особо сказать нечего, покрыт был наиболее критичный функционал.
Про тестирование нового функционала могу заметить — сначала все тесты жили в папке проекта, потом поняли, что многие из них нужно держать в конкретных бандлах.
очень знакомо :) вам повезло, что в команде остался хоть кто-то (не обязательно программист), который знает, как должна работать система и почему.
а то внезапно оказывается, что шаурма обеспечивала функционал
Наличие в первоначальной версии фронт контроллера очень сильно упрощает переписывание кода на современные технологии. А вот если бы его не было, то было бы очень больно. Все же у вас не самый хардкорный legacy был.

А что было с проектом, пока вы его переписывали? Бизнес же не может стоять. А если делать постепенно, то есть шанс превратить проект в некоторый франкенштейн, который также сложно поддерживать.
У нас такая же ситуация была. Но фронт контроллера не было, а было распихано по файлам. Проект был в настолько плохом состоянии, что написание тестов только навредило бы. Постелено внедрил в проект Yii2. Теперь от старого кода осталась только БД, которую я постепенно мигрирую на новый манер. Удивительно, но прям сложно это не было.
Сейчас понимаю, что Yii2 — не самый подходящий для нашего проекта инструмент и хочу как-то переползти на Symfony. Только Yii2 не очень-то учит хорошим практикам программирования, и из-за нехватки опыта в свое я успел научиться плохому и жёстко привязать проект к фреймворку. И вот теперь я понимаю, что мигрировать с одного фреймворка на другой будет сложнее, чем этого хотелось
Закастомизировали ControllerResolver, он подцеплял легаси контроллеры. Новый функционал писали уже в стиле Symfony, чтобы потом безболезненно к фреймфорку зацепить. Попутно внедряя компоненты типа DI, Security, Twig. Как переехали на Symfony, стали в бандлах писать. А вот совсем недавно весь легась был полностью выпилен! ))
На сколько у вас деградировала производительность при переходе на Doctrine? В текущем проекте пытались переползти на Doctrine, но разница с AR существенна.(
Чтобы заставить Doctrine быть производительной нужно писать много кода.
Если сравнивать с легаси, то производительность даже выросла. Наш предшественник не много уделял внимания производительности. Например, был класс проверяющий права пользователя, который лазил в базу, кеширования никакого не было, соответственно, на каком-нибудь хитром ui, где нужно было проверять показывать или нет кнопки пользователю, выходило несколько сотен запросов. Самая жесть была на странице, где выводился график всех пользователей с задачами (примерно как в гугл-календаре), там было около 30к запросов.
Так что провести сравнение до/после доктрины возможности не было.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий