ホームページ  >  記事  >  PHPフレームワーク  >  Yii フレームワークでのルーティング: URL の美化の実装

Yii フレームワークでのルーティング: URL の美化の実装

王林
王林オリジナル
2023-06-21 15:33:20831ブラウズ

Yii フレームワークは、オープンソースの高性能 Web アプリケーション開発フレームワークであり、MVC 設計パターンに基づいており、開発者がスケーラブルな Web アプリケーションを迅速に構築するのに役立ちます。 Yii フレームワークでは、ルーティングは非常に重要な概念です。ルーティングの役割は、クライアントから要求された URL を、対応するコントローラーとアクションにマッピングすることです。

従来の Web アプリケーションでは、URL は通常、http://www.example.com/index.php?id=1001&category=book のようなパラメータを含む文字列です。このような URL では、ユーザーが現在どのページにアクセスしているのかを直感的に理解しにくくなり、見た目も美しくありません。ユーザーがページにアクセスしやすくするために、Yii フレームワークは URL をよりシンプルでわかりやすい形式に変換できるルーティング機能を提供します。

まず、アプリケーション構成ファイルでルーティング ルールを構成する必要があります。 Yii フレームワークは、ルール ルーティング、拡張ルーティング、および通常のルーティングという 3 つの異なるルーティング方法を提供します。ここでは例としてルールルーティングを取り上げます。

ルール ルーティングは最も一般的に使用されるルーティング方法であり、特定の URL ルールを指定されたコントローラーおよびアクションにマップします。簡単な例を次に示します。

return [
    'components' => [
        'urlManager' => [
            'enablePrettyUrl' => true,
            'showScriptName' => false,
            'rules' => [
                'post/<id:d+>' => 'post/view',
                'posts' => 'post/index',
            ],
        ],
    ],
];

上記の例では、URL /post/1001 をコントローラーのポストとアクション ビューにマップします。ここで、1001 は動的に渡されるパラメーターです。このように、ユーザーは /post/1001 にアクセスすることで ID 1001 のブログ投稿を表示できます。さらに、URL /posts をコントローラーの投稿およびアクション インデックスにマップして、ユーザーが /posts にアクセスすることでブログ投稿のリストを表示できるようにします。

上記の固定ルールに加えて、正規表現を使用して URL を照合することもできます。例:

return [
    'components' => [
        'urlManager' => [
            'enablePrettyUrl' => true,
            'showScriptName' => false,
            'rules' => [
                [
                    'pattern' => '/post/<id:d+>',
                    'route' => 'post/view',
                    'suffix' => '.html',
                ],
                [
                    'pattern' => '/<category:w+>',
                    'route' => 'post/index',
                    'suffix' => '.html',
                ],
            ],
        ],
    ],
];

上の例では、URL を照合するために 2 つの正規表現を使用しました。最初のルールは、/post/1001.html をコントローラーのポストおよびアクション ビューにマップします。ここで、.html はサフィックス、1ae845aa4984539391bc1a58ac88f77f は動的に渡されるパラメーターです。 2 番目のルールは、/news.html または /technology.html をコントローラーのポストおよびアクション インデックスにマップします。ここで、5d6232a63e0687f3861341750f3c1b35 は、任意の文字に一致する動的に渡されるパラメーターです。

Yii フレームワークは、ルールルーティングに加えて、拡張ルーティングと通常のルーティングも提供します。拡張ルーティングはルール ルーティングに似ており、URL を指定されたコントローラーおよびアクションにマップできます。違いは、拡張ルーティングがモジュール、コントローラー、アクションの名前の自動解決をサポートし、指定されたモデル オブジェクトにパラメーターを自動的に入力できることです。

通常ルーティングは、正規表現を使用して任意の URL と一致する、より強力なルーティング方法です。通常のルーティングには使用シナリオが比較的少なく、通常は特殊な URL 形式と一致するために使用されます。

一般に、Yii フレームワークでルーティングを使用すると、URL が簡単に美しくなり、ユーザーがページにアクセスしやすくなります。同時に、ルーティングは MVC アプリケーションを構築する上で重要な部分でもあり、さまざまなルーティング方法でさまざまなニーズを満たすことができます。 Web アプリケーションを開発するときは、アプリケーションのパフォーマンスとユーザー エクスペリエンスを向上させるために、特定の状況に基づいて最適なルーティング方法を選択する必要があります。

以上がYii フレームワークでのルーティング: URL の美化の実装の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。