Heim  >  Artikel  >  Backend-Entwicklung  >  Es gibt verschiedene Möglichkeiten, Routing in PHP zu schreiben

Es gibt verschiedene Möglichkeiten, Routing in PHP zu schreiben

(*-*)浩
(*-*)浩Original
2019-09-28 15:11:189498Durchsuche

Die Funktion des Routings besteht darin, Anfragen auf der Grundlage des Prinzips des regelmäßigen Abgleichs an verschiedene Controller zu verteilen. Als nächstes implementieren wir einen einfachen Router, der Rückrufe für statische Routen (ohne Platzhalter) korrekt aufrufen kann.

Es gibt verschiedene Möglichkeiten, Routing in PHP zu schreiben

Routenverteilung (Empfohlenes Lernen: PHP-Video-Tutorial)

PHP-basierte Routenverteilung, Essenz Einfach ausgedrückt besteht es darin, den Pfad in der URL zu verwenden, um mit der entsprechenden Steuerklasse übereinzustimmen, und gleichzeitig die darin enthaltenen Methoden aufzurufen, um verwandte Vorgänge zu verarbeiten.

<?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;;
    }
}

Das obige ist der detaillierte Inhalt vonEs gibt verschiedene Möglichkeiten, Routing in PHP zu schreiben. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn