zil*_*log 5 migration controller yii yii2
我有一个相当大的Yii1应用程序,我想慢慢迁移到Yii2.我想逐渐这样做.
我已按照Yii2和Yii1集成手册中的说明进行操作.
我的应用程序运行正常.
我也尝试了yii2-yii-bridge技巧,它似乎也经过一些调整后才能工作.
我的问题是,既然我知道我的应用程序中有两个版本的Yii,我该如何开始添加Yii2样式控制器?
如果我创建一个简单的Yii2样式控制器,像这样:
namespace app\controllers;
use Yii;
use yii\filters\AccessControl;
use yii\web\Controller;
use yii\filters\VerbFilter;
class SecondController extends Controller {
public function behaviors()
{
return [
'access' => [
'class' => \yii\filters\AccessControl::className(),
'only' => ['index'],
'rules' => [
// allow authenticated users
[
'allow' => true,
'roles' => ['@'],
],
// everything else is denied
],
],
];
}
public function actionIndex()
{
Yii::trace("(!!!) SecondController::index called!!!");
return "SecondController::index!!";
}
} // class
Run Code Online (Sandbox Code Playgroud)
使用我用的URL方案,我不能访问它,所以HTTP://local.url/second/index似乎并没有被发现.
但是,如果我按照我一直以来的方式创建Yii1样式,它就可以很好地解决:
class ThirdController extends Controller {
public function accessRules() {
return array(
array('allow',
'actions' => array('index'),
'users' => array('*'),
),
);
}
public function actionIndex() {
Yii::trace("ThirdController::index called!!!");
return "ThirdController::index!!";
}
}
Run Code Online (Sandbox Code Playgroud)
似乎默认的url映射<controller>/<action>无法处理命名空间控制器是否有办法解决这个问题?
集成的主要目标是使用仅在 Yii 2 中可用的一些功能。假设您仍然有一个正在运行的 Yii 1 应用程序。但是您添加了一些具有新功能的外部库。
为了能够使用 Yii 2 的控制器,您应该与 Yii 1 核心进行深度集成。
我只能建议将请求拆分到应用程序索引文件,例如在 .htaccess 中,并在 Yii 2 中创建一些新功能。
| 归档时间: |
|
| 查看次数: |
319 次 |
| 最近记录: |