라우팅의 기능은 정규 매칭 원칙에 따라 요청을 여러 컨트롤러에 배포하는 것입니다. 다음으로 (자리 표시자 없이) 정적 경로에 대한 콜백을 올바르게 호출할 수 있는 간단한 라우터를 구현합니다.
경로 배포(권장 학습: PHP 비디오 튜토리얼)
PHP 기반 경로 배포는 기본적으로 URL의 경로를 사용하여 해당 컨트롤 클래스를 일치시키고 동시에 해당 메서드를 호출하여 관련 작업을 처리합니다.
<?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 '页面不存在'; } }
위 내용은 PHP에서 라우팅을 작성하는 방법에는 여러 가지가 있습니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!