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: Код использовался достаточно давно, и с новыми версиями обеих платформ, возможно, потребуется еще что-то дорабатывать.