2015-09-28 89 views
7

我在Yii1.x一個項目,我現在用的Yii2爲同一項目在同一個項目中使用Yii1和Yii2

項目的層次結構是這樣的

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

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

現在我想知道是否可以使用project2/common/modelsproject1/protected/controllers

我該如何實現這個任務?

謝謝

回答

7

我不建議這樣做,相反,它是更好地在Yii2完全重寫舊的應用程序。

但是,如果部分遷移,請在官方指南的專題部分閱讀this paragraph

以下是一些重要的代碼片段從那裏:入口腳本的

1)改進型:

$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; 

用法:

// 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)Yii類的組合Yii等級:

echo get_class(Yii::app()); // outputs 'CWebApplication' 
echo get_class(Yii::$app); // outputs 'yii\web\Application' 
+0

我是這個框架的初學者,所以我不知道該文檔試圖說什麼..是否有任何其他的一步一步教程可用,我可以遵循?? –

相關問題