Зачем мы подружили Битрикс и Symfony
Мы долгое время работали с Java и нашей CMS Mozart. Но когда рынок заказной разработки веб-приложений и сервисов стал переходить на Битрикс, последовали за ним. Тем более — этого требовали клиенты.
Мы сталкивались с некоторыми несоблюдениями стандартов разработки в рамках самого вендора, недостаточными возможности по автоматическому тестированию системы, сложностью с использованием разработанных сообществом модулей (отсутствие Composer), невозможность миграции схемы базы данных. Одним словом, Битрикс — очень большая универсальная система. Но когда ты делаешь «для всех», ты не делаешь ни для кого. Каждому проекту необходим индивидуальный подход под конкретные бизнес-задачи.
Для того чтобы решить сложности с разработкой и поддержкой проектов, не изобретая велосипед, мы начали внедрять сторонние технологии. В качестве базы для собственных решений, тесно интегрированных с Битриксом, взяли фреймворк Symfony.
Почему Symfony?
— бурно развивающееся сообщество;
— большое количество слабо связанных компонентов;
— аннотации;
— нам нравится этот фреймворк.
У нас уже был большой опыт работы с этим фреймворком, и до этого мы внедряли консоль Symfony в свои битрикс-проекты. А месяц назад и сам Битрикс сделал то же самое :)
Нам нравится этот фреймворк: у него есть большое сообщество и множество слабо связанных компонентов.
Внедрение начали с отдельных компонентов. Но не остановились на этом. Логичным развитием технологии стала интеграция роутинга Symfony и Symfony HttpFoundation, чтобы сделать полноценный REST AJAX-контролер.
Половина дела была позади. Оставалось связать два приложения между собой, а дальше постепенно уменьшать их связанность. Что мы и сделали.
В результате:
— за счет автоматического тестирования мы свели к минимуму количество регрессионных багов;
— каталог Elasticsearch с фильтрацией и поиском, работающий быстрее стандартного и позволяющий реализовывать самые изощренные сортировки и поиск;
— большое количество решений для ecommerce для быстрой сборки проектов, требующих только конфигурирования;
— полноценный мониторинг технических и бизнес-показателей проектов;
— все управление сайтом осуществляется из административной панели Битрикс;
— сохранена полная функциональность системы;
— упростили мониторинг (в том числе и бизнес-показателей).
Теперь увеличена скорость разработки новых проектов и поддержки существующих и развернуто единообразное и контролируемое CI/CD.
И мы продолжаем развивать систему :)