框架中的单入口和多入口

1.多入口:
           定义:就是通过访问不同的文件来完成用户请求。通过访问不同的php文件运行相对应的功能。比如我们刚开始学习php的时候,我们做一个项目的时候都会这样
index.php 网站首页
list.php?page=5内容列表页
info.php?id=12内容详细页
login.php用户登录页
         对于这个项目来说这其实就是一个多入口


2.单一入口:
   定义: web 程序所有的请求都指向一个脚本文件的,也就是说一个文件处理所有的http请求,举个例子来说不管是列表有还是文章页,都是从浏览器访问index.php。
          这个文件就是这个应用程序的单一入口。
          拿生活的例子来说很简单:大家都要上WC,都是男生进一个门,女生进一个门,这两个门就是WC的两个入口。而现在去一个公园里面的WC,外面还有一个门,
          不管男女都从最外面的门进入,交了钱以后才进入里面的男厕所门或女厕所门,而这个最外面的门就是这个WC的单一入口
   实现方式:很简单,可以在访问index.php时限上一个特定的参数。例如index.php?action=list就是访问列表页,而index.php?action=single则访问文章页。
  
   实现代码:$action=$_GET['action']==''?'index':$_GET['action'];//从url中取出action参数,如果没有提供action参数,就设置一个默认的'index'作为参数
     include('files/'.$action.'.php');//根据$action参数调用不同的代码文件,从而满足单一入口实现对应的不同的功能


    优点:单一入口应用程序的所有http请求都是通过index.php接受并转发到功能代码中,所以在index.php里面就能完成许多实际工作,由于所有的http请求都是有index.php
  接收,所以可以进行集中的安全性检查,如果不是单一入口,那么开发者就必须记得每一个文件的开始就得加上安全性检查代码(安全性检查可以写到一个文件中,只需要
  include就可以了)
  
  单一入口也容易控制权限,方便对http请求进行安全性检查
    
    缺点:任何事情都有两面性,单一入口程序也不例外,由于所得的http请求都是针对index.php,所以程序的url看起来并不是那么美观,特别是对搜索引擎来说不是很友好
    用到的框架:laravel框架,thinkphp框架

你可能感兴趣的:(框架)