2015-09-28 38 views
7

miałem projekt w Yii1.x i teraz używam Yii2 dla samych projektówKorzystanie Yii1 i Yii2 w tym samym projekcie

hierarchia Projekt jest coś takiego

Project1(yii1)/all yii files + project2(yii2) 

project2(yii2)/frontend + /common + /backend 

Teraz chcę wiedzieć, czy jest możliwe użycie project2/common/models w project1/protected/controllers

Jak mogę wykonać to zadanie?

Dziękuję

Odpowiedz

7

nie polecam robić, zamiast lepiej jest całkowicie przerobić starą aplikację w Yii2.

Ale w przypadku częściowej migracji przeczytaj this paragraph w sekcji specjalnych tematów w oficjalnym przewodniku.

Oto kilka ważnych fragmentów kodu stamtąd:

1) Modyfikacja skryptu wejściowego:

// include the customized Yii class described below 
require(__DIR__ . '/../components/Yii.php'); 

// configuration for Yii 2 application 
$yii2Config = require(__DIR__ . '/../config/yii2/web.php'); 
new yii\web\Application($yii2Config); // Do NOT call run() 

// configuration for Yii 1 application 
$yii1Config = require(__DIR__ . '/../config/yii1/main.php'); 
Yii::createWebApplication($yii1Config)->run(); 

2) Kombinacja Yii klasach:

$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 
{ 
    // copy-paste the code from YiiBase (1.x) here 
} 

Yii::$classMap = include($yii2path . '/classes.php'); 
// register Yii 2 autoloader via Yii 1 
Yii::registerAutoloader(['Yii', 'autoload']); 
// create the dependency injection container 
Yii::$container = new yii\di\Container; 

Użytkowania klasy Yii:

+0

Jestem początkujący w tym zakresie, więc nie mam pojęcia, co ta dokumentacja próbuje powiedzieć .. Czy jest jakiś inny dostępny krok po kroku tutorial, który mogę śledzić? –