美文网首页
原生php实现页面路由的笔记

原生php实现页面路由的笔记

作者: yinminqian | 来源:发表于2017-12-02 23:38 被阅读0次

    代码和目录截图不能更好理解的话,可以去github直接克隆:

    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,注意地址栏参数

    相关文章

      网友评论

          本文标题:原生php实现页面路由的笔记

          本文链接:https://www.haomeiwen.com/subject/jpjnbxtx.html