Где скачать Kunena форум. Официальный сайт Kunena.
Где скачать Kunena Discuss. Официальный сайт Kunena.
Как сменить кодировку в Блокноте по умолчанию с ANSI на другую
Как войти в Instagram с телефона или планшета
Как сменить кодировку текстового файла с помощью Блокнота в Windows
Как получить HTML-код для вставки на сайт видео с YouTube
Как открыть YouTube. Официальный сайт
Где находится файл index.php шаблона сайта на Joomla
ArrowArrow
ArrowArrow
ArrowArrow
ArrowArrow
ArrowArrow
Slider
Звезда не активнаЗвезда не активнаЗвезда не активнаЗвезда не активнаЗвезда не активна
 

Использование Yii 2 в связке с Yii 1

Использование Yii 2 в связке с Yii 1

Если в прошлом вам приходилось использовать Yii 1, не исключено, что у вас до сих пор где-то используются приложения на этой платформе. Вместо того, чтобы переписывать все приложение под Yii 2, может быть целесообразно расширить его используя отдельные функции, которые появились в Yii 2. Для этого нужно выполнить следующие действия.



Note: Yii 2 требует PHP 5.4 или выше. Убедитесь, что и сервер, и существующее приложение поддерживают это.

Во-первых, установите Yii 2 в существующем приложении, выполняя действия, описанные в предыдущем подразделе.

Во-вторых, внесите следующие изменения во входной скрипт приложения:

// подключение модифицированного класса Yii, описанного ниже
require(__DIR__ . '/../components/Yii.php');

// настройка приложения Yii 2
$yii2Config = require(__DIR__ . '/../config/yii2/web.php');
new yii\web\Application($yii2Config); // НЕ ВЫЗЫВАЙТЕ run()

// настройка приложения Yii 1
$yii1Config = require(__DIR__ . '/../config/yii1/main.php');
Yii::createWebApplication($yii1Config)->run();

Так как класс Yii используется и в Yii 1, и в Yii 2, нужно будет создать его модифицированную версию, обслуживающую обе версии фреймворка. В приведенном выше коде подключается модифицированный файл класса Yii со следующим содержимым:

$yii2path = '/path/to/yii2';
require($yii2path . '/BaseYii.php'); // Yii 2.x

$yii1path = '/path/to/yii1';
require($yii1path . '/YiiBase.php'); // Yii 1.x

class Yii extends \yii\BaseYii
{
    // скопируйте и вставьте код из YiiBase (1.x)
}

Yii::$classMap = include($yii2path . '/classes.php');
// регистрация автозагрузчика Yii 2 через Yii 1
Yii::registerAutoloader(['Yii', 'autoload']);
// создание контейнера внедрения зависимостей
Yii::$container = new yii\di\Container;

Вот и все! Теперь в любом месте кода можно с помощью конструкции Yii::$app получить доступ к экземпляру приложения Yii 2, а с помощью конструкции Yii::app() - к экземпляру приложения Yii 1:

echo get_class(Yii::app()); // выводит 'CWebApplication'
echo get_class(Yii::$app);  // выводит 'yii\web\Application'

Заберите ссылку на статью к себе, чтобы потом легко её найти ;)

Выберите, то, чем пользуетесь чаще всего:

Спасибо за внимание, оставайтесь на связи! Ниже ссылка на форум и обсуждение ; )


Обсудить эту статью

INFO: Вы отправляете сообщение как 'Гость'