ホームページ  >  記事  >  バックエンド開発  >  MVC フレームワークを使用せずに PHP を使用して単一のエントリ ポイントを実装する方法

MVC フレームワークを使用せずに PHP を使用して単一のエントリ ポイントを実装する方法

PHPz
PHPzオリジナル
2023-03-29 11:32:15677ブラウズ

Web アプリケーションが開発を続けるにつれて、Web サイトの構築方法も常に改善されています。以前は、開発者は複数のファイルを使用して Web サイトを構築することが多く、それぞれが異なるリクエストの処理を担当していました。ただし、このアプローチではコードが乱雑になり、保守が困難になる可能性があります。これに基づいて、コードをモデル、ビュー、コントローラーの 3 つの部分に分割する MVC アーキテクチャが誕生し、コードの編成と管理が容易になりました。ただし、一部の小規模なアプリケーションや初心者の場合、MVC アーキテクチャを使用する必要はなく、MVC フレームワークを使用するとアプリケーションのアクセスが増加するため、パフォーマンスの最適化にはつながりません。

この記事では、MVC フレームワークを使用せずに、PHP を使用して単一のエントリを実装する方法を紹介します。

シングル エントリ

シングル エントリはアプリケーションで使用されるアーキテクチャであり、アプリケーション全体にはエントリ ファイルが 1 つだけあり、すべてのリクエストはこのファイルによって処理されます。このアーキテクチャの利点は、リクエストを均一に管理し、簡単に維持できることです。同時に、リクエストに対してセキュリティ制限を実装して、不正なアクセスを防ぐこともできます。 PHP では、.htaccess ファイルを使用してすべてのリクエストをindex.php ファイルに転送し、単一のエントリを実現できます。

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php [L]
</IfModule>

上記のコードは、リクエストをindex.phpファイルに転送します。リクエストされたファイルが存在せず、リクエストされたディレクトリも存在しない場合にのみ転送されます。 ## ルーティングを実装する シングル エントリ モードでは、URL を解析し、対応するコントローラとアクションにマッピングする必要があります。このプロセスはルーティングと呼ばれます。正規表現を使用して URL を 2 つのパラメーター (コントローラーとアクション) に解析できます。

$request = $_SERVER[&#39;REQUEST_URI&#39;];
if (preg_match(&#39;/index.php\/(?P<controller>[a-z]+)\/(?P<action>[a-z]+)/&#39;, $request, $matches)) {
    $controller = ucfirst($matches[&#39;controller&#39;]) . &#39;Controller&#39;;
    $action = $matches[&#39;action&#39;] . &#39;Action&#39;;
} else {
    $controller = &#39;IndexController&#39;;
    $action = &#39;indexAction&#39;;
}

上記のコードは、URL を 2 つのパラメーター (コントローラーとアクション) に解析し、それらを $controller 変数と $action 変数に割り当てます。 URL がルールに準拠していない場合は、デフォルトで IndexController と IndexAction が使用されます。

コントローラーとオペレーションを実装する コントローラーはシングル エントリ モードの中核部分であり、リクエストを受信し、対応する操作を呼び出す役割を果たします。同時に、コントローラーはデータ処理とビュー出力も担当します。 一般的なコントローラーは次のようになります。

class IndexController
{
    public function indexAction()
    {
        // 处理数据
        $data = [&#39;title&#39; => &#39;Hello World&#39;];
        
        // 输出视图
        require_once &#39;index.view.php&#39;;
    }
}

上記のコードは、indexAction オペレーションを持つ IndexController コントローラーを定義します。データはオペレーションで処理され、出力のためにビューに渡されます。 ## ビューを実装する ビューは、シングル エントリ モードのもう 1 つの重要な部分であり、コントローラーから渡されたデータを処理し、ユーザーにデータを表示する役割を果たします。 HTML と CSS を使用してビューを構築できます。 簡単な図は次のとおりです。

<!DOCTYPE html>
<html>
<head>
    <title><?= $data[&#39;title&#39;] ?></title>
</head>
<body>
    <h1><?= $data[&#39;title&#39;] ?></h1>
    <p>Welcome to my website.</p>
</body>
</html>

上記のコードは、PHP の短いタグを使用して、コントローラーによって渡されたデータを出力します。 ######結論は この記事では、MVC フレームワークを使用せずに、PHP を使用してシングル エントリ ポイントを実装する方法を紹介しました。 .htaccess ファイルを使用してすべてのリクエストをindex.php ファイルに転送し、ルートを使用して URL を解析し、適切なコントローラーとアクションにマッピングします。同時にコントローラーとビューの実装方法も紹介しました。単一のエントリ ポイントを使用すると、コードがより整理され、コードの保守性とセキュリティが向上します。

以上がMVC フレームワークを使用せずに PHP を使用して単一のエントリ ポイントを実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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