ホームページ >バックエンド開発 >PHPの問題 >PHPでルート配布を実装する方法

PHPでルート配布を実装する方法

coldplay.xixi
coldplay.xixiオリジナル
2020-08-10 11:45:233670ブラウズ

php でルート配布を実装する方法: 1. require メソッドと include メソッドを使用して php ファイルをインクルードします; 2. URL 内のパスを使用して対応するコントロール クラスと一致させ、その中のメソッドを呼び出して関連する処理を実行します。オペレーション。 。

PHPでルート配布を実装する方法

#ルーティング分散を実装するための php メソッド:

1. ファイルには ## が含まれています#php にファイルをインクルードするには、require と include の 2 つの方法があります。2 つの方法の違いは、require を使用してファイルをインクルードするときにエラーが発生すると、重大なエラーが報告され、PHP スクリプトが停止することです。実行中; include を使用してファイルをインクルードするときにエラーが発生すると、警告が表示されますが、PHP スクリプトは引き続き実行されます。同時に、両方のメソッドには、「クラス宣言」の問題を回避できる、対応する

xxx_once

メソッドが含まれています。したがって、通常、ファイルのインクルードを使用する場合は、include_once を使用してファイルをインクルードするようにします。 同時に、ファイルに含まれるパスの問題については、グローバル変数を設定する方法を使用して、エントリ ファイルの絶対パスに基づいて他のパス ファイルを見つけることができます。 php.ini の

inclue_path

パスを変更することも、もちろん別の方法です。ファイルを含めるには、require と include を使用します。相対パスの場合は、まず、ファイル内の include_path# に基づきます。 php.ini 設定ファイル ## 検索する設定。 2. ルート配布

PHP ベースのルート配布は、基本的に、URL 内のパスを使用して対応するコントロール クラスと照合し、その中のメソッドを呼び出します。関連する操作。

何も言わずにコードを書く:

<?php
// 权限控制
include_once &#39;./auth.php&#39;;
// 应用入口文件
date_default_timezone_set("Asia/Shanghai");
header(&#39;Content-type: text/html;charset=utf-8&#39;);
// 项目根路径
define(&#39;BASEPATH&#39;, dirname(__FILE__));
// 调试模式
define(&#39;APP_DEBUG&#39;, True);
// 引入配置文件
include_once BASEPATH . &#39;/config/config.php&#39;;
// 路由控制
$router = include_once BASEPATH . &#39;/config/router.php&#39;;
if ($_SERVER[&#39;HTTP_HOST&#39;] !== &#39;xxx.com&#39;) {
    var_dump(&#39;当前host不被允许&#39;);
} else {
    $request_path = str_replace(&#39;/index.php&#39;, &#39;&#39;, $_SERVER[&#39;PHP_SELF&#39;]);
    $request_query = getCurrentQuery();
    if (array_key_exists($request_path, $router)) {
        $module_file = BASEPATH . $router[$request_path][&#39;file_name&#39;];
        $class_name = $router[$request_path][&#39;class_name&#39;];
        $method_name = $router[$request_path][&#39;method_name&#39;];
        if (file_exists($module_file)) {
            include $module_file;
            $obj_module = new $class_name();
            if (!method_exists($obj_module, $method_name)) {
                die("要调用的方法不存在");
            } else {
                if (is_callable(array($obj_module, $method_name))) {
                    $obj_module->$method_name($request_query, $_POST);
                }
            }
        } else {
            die("定义的模块不存在");
        }
    } else {
        echo &#39;页面不存在&#39;;
    }
}

関連する学習の推奨事項:

php プログラミング
(ビデオ)

以上がPHPでルート配布を実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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