Mik*_*oss 7 yii yii2 yii2-advanced-app
我在Yii1.x有一个项目,现在我正在使用Yii2进行相同的项目
项目层次结构就是这样的
Project1(yii1)/all yii files + project2(yii2)
project2(yii2)/frontend + /common + /backend
Run Code Online (Sandbox Code Playgroud)
现在我想知道,如果是可以用project2/common/models在project1/protected/controllers
我怎样才能完成这项任务?
谢谢
我不建议这样做,而是在Yii2中完全重写旧应用程序.
但是在部分迁移的情况下,请阅读官方指南中的特殊主题部分中的这一段.
以下是一些重要的代码片段:
1)修改输入脚本:
// 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();
Run Code Online (Sandbox Code Playgroud)
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
{
// 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;
Run Code Online (Sandbox Code Playgroud)
Yii课程用法:
echo get_class(Yii::app()); // outputs 'CWebApplication'
echo get_class(Yii::$app); // outputs 'yii\web\Application'
Run Code Online (Sandbox Code Playgroud)