源码阅读-ThinkPHP-0-单一入口机制

2017-06-06  本文已影响0人  苏近之2017

什么不是单一入口

从前些网站,要访问一个页面,需要在地址栏中输入域名加上页面名称,如下:

// 访问登录页面
http://www.abc.com/login.html
// 访问注册页面
http://www.abc.com/register.html

这种就不是单一入口机制。

什么是单一入口机制

接着上面的例子,同样是访问登录和注册页面,示例如下:

// 通过单一入口访问登录页面
http://www.abc.com/index.php?page=login
// 通过单一入口访问注册页面
http://www.abc.com/index.php?page=regist

这里的单一入口很明显就是index.php

有如下几个特点:

访问单个模块内的页面,都通过入口文件。即:模块的代码执行从入口文件开始。

一个项目内可能有多个模块,每个模块都有一个单一入口文件,比如前台模块index.php,后台模块admin.php

以上说的就是单一入口机制。

简单的实现

上面举了一个例子,接下来我们尝试着实现它。

编写入口文件

我们需要获取浏览器 URL 中的参数,然后根据参数内容引入 PHP 文件。所以先编写index.php文件。

// 获取路径当中的 page 参数,如果不存在,则赋值为 404
$page = $_GET['page'] ?  $_GET['page'] : '404' ;
// 引入 page 所指的页面
include $page .'.php';

接下来以此实现login.phpregister.php以及404.php

例如 login.php 伪代码:

echo 'Login page';

单一入口机制的优点

我们用它,那么为什么用它,它能给我们带来什么好处呢?

可以在入口文件中添加通用操作,例如版本检查,降低代码维护成本。

单一入口机制的缺点

世间事物都具有双面性,单一入口机制有什么缺点呢?

由于路径不美观,所以搜索引擎不喜欢。即不利于 SEO 。

上一篇下一篇

猜你喜欢

热点阅读