Maison > développement back-end > Problème PHP > Comment implémenter la distribution de routes en php

Comment implémenter la distribution de routes en php

coldplay.xixi
Libérer: 2023-03-04 08:24:02
original
3642 Les gens l'ont consulté

Comment implémenter la distribution de routes en PHP : 1. Utilisez les méthodes require et include pour inclure les fichiers PHP ; 2. Utilisez le chemin dans l'URL pour faire correspondre la classe de contrôle correspondante, et en même temps appelez les méthodes dans il pour traiter les opérations liées.

Comment implémenter la distribution de routes en php

Comment implémenter la distribution de routage en PHP :

Le fichier contient

Il existe deux manières d'inclure des fichiers en PHP : require et include La différence entre les deux méthodes est que lorsqu'une erreur se produit lors de l'utilisation de require pour inclure un fichier, une erreur grave sera signalée et le script PHP s'arrêtera. en cours d'exécution ; lorsqu'une erreur se produit lors de l'utilisation de include pour inclure le fichier, il y aura un avertissement, mais le script PHP continuera à s'exécuter. Dans le même temps, les deux méthodes incluent des méthodes

correspondantes, ce qui peut éviter le problème de « déclarer la classe ». Par conséquent, lorsque nous utilisons généralement l'inclusion de fichiers, nous essayons d'utiliser xxx_once pour inclure des fichiers. include_once

Dans le même temps, en ce qui concerne le problème du chemin d'accès à l'inclusion de fichiers, nous pouvons utiliser la méthode de définition de variables globales pour trouver d'autres fichiers de chemin en fonction du chemin absolu du fichier d'entrée. Modifier le chemin

dans php.ini est bien sûr une autre manière. Utilisez require et include pour inclure le fichier. S'il s'agit d'un chemin relatif, il sera d'abord trouvé selon le paramètre inclue_path dans la configuration de php.ini. déposer. include_path

2. Distribution de routes

La distribution de routes basée sur PHP, en substance, utilise le chemin dans l'URL pour correspondre à la classe de contrôle correspondante, et en même temps appelle les méthodes qu'il contient. Traitement des opérations associées.

Coder sans dire un mot :

<?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;;
    }
}
Copier après la connexion

Recommandations d'apprentissage associées :

programmation php(vidéo)

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
php
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal