Подключение Yii к Joomla 3

Posted: 14 февраля 2013


Иногда бывает необходимо использовать удобные привычные инструменты в непривычной среде. Так, например, может понадобиться подключить Yii к компоненту Joomla 3

Для этого необходимо создать новый компонент. В конфигурационный файл Joomla добавляем инициализацию Yii:

 public static function YiiPath() {
   return __DIR__ . '/components/com_{имя компонента}/yii';
 }

 public static function includeYii() {
   $yiiPath = JConfig::YiiPath();
   require_once $yiiPath . '/framework/yii.php';
   $config = $yiiPath . '/get_conf.php';
   Yii::registerAutoloader(array('JLoader', 'load'), true);
   Yii::createWebApplication($config);
 }

В корне components в файле {названиеКомпонента}.php подключаем Yii:

JConfig::includeYii();

Файл для загрузки конфига get_conf.php

$JoomlaConfig =& JFactory::getConfig();
return array(
    'basePath' => JConfig::YiiPath() . '/protected/',
    'import' => array(
        'application.models.*',
        'application.components.*',
    ),
    'components' => array(
        'db' => array(
            'connectionString' => 'mysql:host=' . $JoomlaConfig->get('host') . ';dbname=' . $JoomlaConfig->get('db'),
            'emulatePrepare' => true,
            'username' => $JoomlaConfig->get('user'),
            'password' => $JoomlaConfig->get('password'),
            'charset' => 'utf8',

        ),
    )
);

Общая структура компонета выглядит примерно так:

Yii as Joomla component

В данном случае обработка модуля все равно будет выполняться Joomla, однако будут доступна Active Record функциональность и прочие плюшки к которым мы привыкли на Yii. Если интегрировать надо полностью заменив логику компонента cms, есть замечательная статья на эту тему на официальном сайте


If you find the post helpful you can share it


Ваше мнение:

Имя
   other with Yii Framework
drcreazy © 2008-2012 all rights reserved