Ich habe eine ziemlich große Yii1-Anwendung, die ich langsam nach Yii2 migrieren möchte. Ich würde das gerne schrittweise machen.Kombinieren von Yii2-Controllern mit Yii1-Controllern
Ich habe die Anweisungen in der Yii2 and Yii1 integration manual befolgt.
Und meine Anwendung läuft gut.
Ich habe auch den yii2-yii-bridge Trick versucht und es scheint auch nach einigen Verbesserungen zu arbeiten.
Meine Frage ist, jetzt, da ich weiß, dass ich beide Versionen von Yii in meiner Anwendung habe, wie kann ich anfangen, Yii2 Style Controller hinzuzufügen?
Wenn ich eine einfache Yii2 Stil Controller zu erstellen, wie folgt aus:
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
ich zugreifen kann es nicht das URL-Schema verwenden, die ich gewohnt bin, so hat http://local.url/second/index nicht scheinen, zu finden sind.
aber wenn ich eine Yii1 Stil die Art und Weise schaffe ich es immer getan haben, löst es ganz gut:
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!!";
}
}
Es scheint, dass die Standard-URL-Mapping von <controller>/<action>
nicht mit einem Namensraum-Controller umgehen kann, ist es eine Möglichkeit, um dieses?