代码和目录截图不能更好理解的话,可以去github直接克隆:
https://github.com/yinminqian/php_roust
首先从一个最简单的项目开始,假设这个最简单的项目拥有一个项目所需的基本目录
如下图:
demonstration:总的项目文件夹;
route:演示本文章路由功能的项目文件夹,实际是从本文件夹开始的;
page:路由跳转页面的文件夹,里面三个页面分别为:主页,商品页,分类页。(cat不是猫);
index.php用来写路由规则;
.htaccess:这个文件用来写PHP的网页配置文件;
1:将PHP .htaccess配置文件写入
Options -MultiViews
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [QSA,L]
将以上配置代码写进.htaccess文件。
2:index.php入口文件
我们需要用到PHP的$_SERVER超全局变量,这个变量非常实用,在PHP文件中先var_dump($_SERVER)在浏览器中打开看到以下:
打印超全局变量$_SERVER我们只用到路由功能,所以只取REQUEST_URI这个值,项目的根目录index打开她的URL只有一个“/”。代表这个主页的服务器地址为“/”,
3:现在,理清以下思路:
1:我们在地址栏输入服务器地址,可以进入对应的服务器页面。“/”也是一个服务器地址,她代表主页的页面。
2:利用switch和require_once和两个tpl小函数来实现路由:
实现路由的方法4:代码后的注释
首先定义两个方法:tpl 和 tpl_path
首先注意:tpl和tpl_pat的传参必须是page文件夹下的文件名,不然不能载入。
tpl_path函数的主要作用是返回传参的文件的绝对地址;
通过switch判断地址栏的传参来绑定载入的界面,绑定载入界面用tpl方法require_once进行连接绑定。
附上page的一个文件截图和效果
以便更好理解
page中的home文件 已完成的product,注意地址栏参数
网友评论