关于由原生PHP写成的自力PHP框架,行使繁多入口文件完成门路的拜访。这时候咱们会遇到的重要成绩是:文件的互相蕴含,其次就是路由调配。当咱们没有行使成熟的PHP框架进行web开发时,咱们就会发现上述两个成绩会是很困扰咱们的成绩所正在。
成绩处理计划:
一、文件蕴含
php的文件蕴含有两种形式:require以及include,两个办法的区分正在于行使require蕴含文件当犯错时,会报出重大谬误,同时PHP剧本会中止运转;而行使include蕴含文件犯错时,会有正告,但PHP剧本依然会持续向下执行。同时两个办法都蕴含对应的xxx_once办法,能够防止”declare class”的成绩。以是普通应用文件蕴含的时分咱们只管即便应用include_once蕴含文件。
同时正在对于文件蕴含的门路成绩上,咱们能够行使设置全局变量的形式,依靠入口文件的相对门路,去寻觅其余门路文件。修正php.ini中的inclue_path门路当然也是另外一种形式,行使require以及include蕴含文件,如果是绝对门路的形式,起首会依据php.ini设置装备摆设文件中的include_path的设置寻觅。
二、路由调配
基于php的路由调配,本质下去说就是行使url中的path去婚配对应的管制类,同时挪用此中的办法进行相干操作的解决。
一言没有合上代码:
<?php /** * Author:helen * CreateTime: 2016/07/27 10:26 * Description: */ // 权限管制 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教程》
以上就是PHP简略完成路由Route性能的具体内容,更多请存眷资源魔其它相干文章!
标签: php php开发教程 php开发资料 php开发自学
版权声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。
抱歉,评论功能暂时关闭!