バックエンドからフロントエンドへのリンクを作成する

バックエンドアプリケーションからフロントエンドアプリケーションへのリンクを作成しなければならないことがよくあります。 フロントエンドアプリケーションはそれ自身の URL マネージャ規則を持ち得ますので、それをバックエンドアプリケーションのために別の名前で複製する必要があります。

return [
    'components' => [
        'urlManager' => [
            // ここに通常のバックエンドの URL マネージャの構成
        ],
        'urlManagerFrontend' => [
            // ここにフロントエンドの URL マネージャの構成
        ],

    ],
];

このようにすると、フロントエンドを指す URL を次のようにして取得することが出来ます。

echo Yii::$app->urlManagerFrontend->createUrl(...);

フロントエンドの規則をコピペしなくても済むように、最初にそれらの規則を独立した urlsphp ファイルに移しておくことが出来ます。

return [
    // ...
    'components' => [
        'urlManager' => [
            'enablePrettyUrl' => true,
            'showScriptName' => false,
            'rules' => require 'urls.php',
        ],
        // ...

    ],
    // ...
];

そして、後でこれを urlManagerFrontend の規則としても読み込めば良いわけです。