Написание модулей для 1С Битрикс на Yii фреймворке

1С Битрикс и Yii фреймворк не могут работать одновременно, т.к. разработчики обоих платформ используюn префикс "C" для именования классов, поэтому требуется модифицировать Yii фреймворк.

Нужно произвести следующую замену строк по всем файлам фреймворка и приложения: ~~~ CEvent -> YiiEvent CApplication -> YiiApplication CModule -> YiiModule, CComponent -> YiiComponent ~~~ И переименовать следующие файлы: ~~~ framework/base/CApplication -> YiiApplication framework/base/CModule -> YiiModule framework/base/CComponent -> YiiComponent ~~~ Вторая проблема совместимости этих платформ в том, что обе используют php5 автозагрузку классов, и после подключения Yii фреймворка, Битрикс перестает находить свои файлы. Автозагрузка классов в битриксе делается через CModule::RequireAutoloadClass($className), добавим этот загрузчик к фреймоворку: ~~~ function __autoload($className) {

CModule::RequireAutoloadClass($className);

}

define("NO_BITRIX_AUTOLOAD", FALSE); //Про эту строчку точно не помню, нужно-ли...

spl_autoload_unregister(array('YiiBase','autoload')); spl_autoload_register('__autoload'); spl_autoload_register(array('YiiBase','autoload')); ~~~

PS: Код использовался достаточно давно, и с новыми версиями обеих платформ, возможно, потребуется еще что-то дорабатывать.

Теги: