Было сложно. Вот некоторые проблемы, с которыми мы столкнулись:
1) Хотелось бы, чтобы и битрикс и доктрина не создавали каждый свое подключение к базе данных, а использовали общее подключение. На практике, оказалось, все не так просто. Пришлось переопределять битриксовый класс подключения к базе, чтобы получить доступ к mysqli и использовать его, для создания доктриновского подключения через mysqli.
2) Проблема с маршрутизацией sql запросов по репликам БД. Штатный механизм маршрутизации в битриксе по понятным причинам не работал для запросов, которые выполнялись доктриной. В итоге проблема самоустранилась после перехода на proxysql
3) Выполнение вложенных транзакций. Если битрикс открывает транзакцию, находясь внутри доктриновской транзакции, то доктриновский механизм поддержки вложенных транзакций в этом случае не сработает и внешняя транзакция закроется раньше. Решили эту проблему перенаправлением всех TCL из битрикса в доктрину.
В конечном счете, от битрикса осталось мало. Почти все было либо полностью переписано, либо существенно доработано. От битрикса в неизменном виде остался только функционал CMS и некоторые структуры в БД
1) Хотелось бы, чтобы и битрикс и доктрина не создавали каждый свое подключение к базе данных, а использовали общее подключение. На практике, оказалось, все не так просто. Пришлось переопределять битриксовый класс подключения к базе, чтобы получить доступ к mysqli и использовать его, для создания доктриновского подключения через mysqli.
2) Проблема с маршрутизацией sql запросов по репликам БД. Штатный механизм маршрутизации в битриксе по понятным причинам не работал для запросов, которые выполнялись доктриной. В итоге проблема самоустранилась после перехода на proxysql
3) Выполнение вложенных транзакций. Если битрикс открывает транзакцию, находясь внутри доктриновской транзакции, то доктриновский механизм поддержки вложенных транзакций в этом случае не сработает и внешняя транзакция закроется раньше. Решили эту проблему перенаправлением всех TCL из битрикса в доктрину.