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