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 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 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 './auth.php'; // 应用入口文件 date_default_timezone_set("Asia/Shanghai"); header('Content-type: text/html;charset=utf-8'); // 项目根路径 define('BASEPATH', dirname(__FILE__)); // 调试模式 define('APP_DEBUG', True); // 引入配置文件 include_once BASEPATH . '/config/config.php'; // 路由控制 $router = include_once BASEPATH . '/config/router.php'; if ($_SERVER['HTTP_HOST'] !== 'xxx.com') { var_dump('当前host不被允许'); } else { $request_path = str_replace('/index.php', '', $_SERVER['PHP_SELF']); $request_query = getCurrentQuery(); if (array_key_exists($request_path, $router)) { $module_file = BASEPATH . $router[$request_path]['file_name']; $class_name = $router[$request_path]['class_name']; $method_name = $router[$request_path]['method_name']; 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 '页面不存在'; } }
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!