Maison > Article > développement back-end > Il existe plusieurs façons d'écrire le routage en php
La fonction du routage est de répartir les requêtes vers différents contrôleurs, sur la base du principe de matching régulier. Ensuite, nous implémentons un routeur simple qui peut appeler correctement des rappels pour les routes statiques (sans espaces réservés).
Distribution de routes (Apprentissage recommandé : Tutoriel vidéo PHP)
Distribution de routes basée sur PHP, essence Pour faire simple, il s'agit d'utiliser le chemin dans l'URL pour correspondre à la classe de contrôle correspondante, et en même temps d'appeler les méthodes qu'elle contient pour traiter les opérations associées.
<?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 '页面不存在'; } }
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!