php单一入口
楼上差矣,控制权限本身就是保证数据安全,不让不该得到的人得到数据
方法一:把所有数据放入数据库,然后通过一个入口文件去读取
方法二:把所有入口文件放在虚拟根目录之外的目录,然后通过一个文件去读取
② 为什么现在的框架都是单入口的呢 哪个php框架不是单入口的呀 单入口有什么好处吗
框架基本都是PHP对各种环境变量进行处理,或者集成各种功能进行封装方便使用,因为PHP4已经速度很快,现在PHP5甚至PHP6速度更快,快到已经不用去介意程序的执行速度了,所以单入口完全能够满足各种应用,没必要去做双入口或者多入口了。
一般来说,PHP框架提供了 action mold param,一个入口可以实现 index.php?action=x&mold=x¶m=x 可以说相当够用了。
如果一定想要多入口,可以自己新建入口承载文件,继承框架内置的各种封装就可以使用了。
③ 请求一个关于php限制只能从一个入口进入网站的实例
简单啊,如果是Apache的话,开启rewrite模块
直接写一个.htaccess
里面写上:
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?$1 [QSA,PT,L]
④ 为什么PHP的很多框架要使用单入口
单一入口应用程序的所有http请求都是通过index.php接收并转发到功能代码去的,所以在index.php里面就能完成许多实际工作。
由于所有的http请求都由index.php接收,所以可以进行集中的安全性检查,如果不是单一入口,那么开发者就必须记得在每一个文件的开始加上安全性检查代码
(当然,安全性检查可以写到另一个文件中,只需要include就可以了。)
与安全性检查类似。在入口里,我们还可以对url参数和post进行必要的检查和特殊字符过滤、记录日志、访问统计等等各种可以集中处理的任务。
这样就可以看出,由于这些工作都被集中到了index.php来完成,可以减轻我们维护其他功能代码的难度。
⑤ php中,什么是单一模式优缺点
php单一入口模式可谓是现在一种比较流行的大型web应用开发模式,比如当前比较流行的一些php开发框架,zend,thinkphp,qeephp,还有cakephp
等他们都是采用的单一入口模式的。本文将就什么是单一入口模式,单一入口模式有哪些优点以缺点做一下研究。
什么是单一入口?
在解释什么是单一入口之前,先说说与之对应的多入口。多入口即通过访问不同的 php 文件运行对应的功能。比如刚开始学习 php
的时候,我们做一个项目通常都会如下这样做:
index.php - 网站首页
list.php?page=5 - 内容列表页
info.php?id=12 - 内容详细页
login.php - 用户登录页
对于这个项目来说,这其实就是一个多入口。
那么单一入口的应用程序就是说用一个文件处理所有的HTTP请求,例如不管是内容列表页,用户登录页还是内容详细页,都是通过从浏览器访问 index.php
文件来进行处理的,这里这个 index.php 文件就是这个应用程序的单一入口。
php 是如何实现单一入口的呢?
很简单,一般单一入口程序都是在访问index.php时附带一个特定的参数。例如:index.php?action=list 就可以定义为访问内容列表页,而
index.php?action=info 则可以定义为访问内容详细页等,具体实现代码如下:
//从url中取出action参数,如果没有提供action参数,就设置一个默认的'index'作为参数
$action=$_GET['action']==''?'index':$_GET['action'];
//根据$action参数调用不同的代码文件,从而满足单一入口实现对应的不同的功能
include('files/'.$action.'.php');
以上这个就实现了一个最简单的单一入口模式程序,当然真正的单一入口模式会比这个要复杂很多。但只要懂得如何合理组织各个功能的处理代码并遵循一定的步骤,也可以轻松的解决掉这个难题,下面就一个后台的例子来做一下说明:
比如我们现在要做一个新闻管理的后台。那么首先,对于应用程序的功能要做出一个合理的分解。例如后台的新闻栏目可能包含“添加新闻”、“编辑新闻”、“删除新闻”等多个功能。这时我们就可以将这一组逻辑上关联的功能组合到一个功能模块中,称为“新闻管理”模块。
按照上面的方法整理完应用程序的功能,我们就会得到多个功能模块,而每个模块又是由多个功能组成(实际上,即便不是单一入口应用程序,功能的整理也是必须的步骤)。
整理完功能后,我们就需要确定如何存放各个功能的代码。这里我推荐两种方式:
1、每个功能模块一个子目录,目录里的每一个文件就是一个功能的实现代码。
这
种方式的好处是每个功能的代码都互相隔离,非常便于多人协作。缺点是每个功能之间共享代码和数据不那么方便。例如新闻管理模块中的所有功能都需要一个“取
出新闻栏目记录”的功能,那么采用这种多个独立文件的组织方式,“取出新闻栏目记录”就只能写在另一个文件中,然后由需要该功能的文件include
进去。
2、每个模块一个文件,模块中的每个功能写成一个函数或者一个类方法。
好处不用多说了,非常便于共享代码和数据。缺点就是如果几个人同时改,容易发生冲突。不过借助版本控制软件和差异比较合并工具,冲突还是很容易解决的。
单一入口应用程序对应多入口有哪些优势呢?
单
一入口应用程序的所有http请求都是通过index.php接收并转发到功能代码中去的,所以在index.php里面就能完成许多实际工作(所有页面
都需要做的且都一样的工作)。比如进行集中的安全性检查,访问统计等等,如果不是单一入口,那么开发者就必须记得在每一个文件的开始加上安全性检查代码,
当然,你也许会说,多入口的安全性检查可以写到另一个文件中,然后include一下就可以了。但实际针对一个相对较大型一点的应用项目,在几十个文件中
保持头部的几个include都一致可不是一件让人省心的事。
与安全性检查类似。在入口里,我们还可以对url参数和post进行必要的检查和特殊字符过滤、记录日志、访问统计等等各种可以集中处理的任务。这样就可以看出,由于这些工作都被集中到了index.php来完成,可以减轻我们维护其他功能代码的难度。
单一入口应用程序的缺点?
任何事情都有两面性,单一入口应用程序也不例外。由于所有http请求都是访问 index.php ,所以程序的 url
看起来不那么美观,特别是对搜索引擎来说不太友好。比如下面这个 url:
http://www.phperhome.ocm/index.php?controller=posts&action=index
我们知道这种URl不太方便记忆,而且搜索引擎不认它是一个正常的 URL,当然是相比下面这种 URl 来说的:
http://www.phperhome.ocm/index.php/posts/index/
不过这个也不是什么大问题,可以采用url重写、PATHINFO等方式就可以轻松解决这个问题。
OK,单一入口模式就写这么多了,当然要想深刻理解单一模式,最好的办法还是自己尝试着用单一入口模式写一个小应用出来深刻体会一下。
本文地址:http://www.phperhome.com/php/400.html
⑥ php中什么是单入口文件单入口文件的优缺点
单一入口应用程序的所有http请求都是通过某一个文件(比如index.php)接收并由这个文件转发到功能代码中去。
单一入口应用程序优势:可以对url参数和post进行必要的检查和特殊字符过滤、记录日志、访问统计等等各种可以集中处理的任务,类似如一些权限控制、用户登录方面的判断和操作可以统一处理了。
由于这些工作都被集中到了单入口文件(index.php)来完成,可以减轻我们维护其他功能代码的难度。
⑦ PHP单一入口写法
php里面没有c语言之类的入口函数, 所有函数, 只要被调用了就可以执行,如: <?php//文件:test.php//这儿是函数的实现, func1也是任意命名,但要符合规范, 不一定必须为main. 即使命名为main, 但没有最下面调用, 该函数也不会被执行function func1() { echo "hello world";} func1();//这儿调用?>
⑧ php的单一入口是什么意思
多个单点都是在一个文件上
比如discuz的 forum.php文件
⑨ 详解PHP框架codeigniter如何实现MVC模式以及单一入口
关于mvc
这里不详细讲解何为MVC模式,只是简单介绍,关于mvc的具体信息可以去网络上找寻,mvc模式在我理解来它将一个项目分解成三部分,分别是Model(模型),View(视图),Controller(控制器),这三个单词的缩写组合即为MVC.MVC是一种普遍的软件敏捷开发模式,在许多领域特别是桌面编程领域早已经得到了广泛的应用,然而在像php一样的脚本语言中比较难以实现,特别是几年前在脚本语言中很难看到mvc的实现,但是今年随着众多框架的涌现,mvc在各个框架中得到了初步实现,其他框架中的实现方式暂且不提,这里只是介绍codeigniter是如何实现mvc的。
关于单一入口
单一入口指在一个网站(应用程序)中,所有的请求都是指向一个脚本文件的,例如CI中的http:\\localhost\index.php,所有对应用程序的访问都是必须通过这个入口,正是单一入口才使得mvc模式得以实现,因为当你访问index.php的时候,应用程序会做大量的初始化工作,调用大量的基础类库,并根据index.php后面的参数加载控制器,然后加载试图,模型等内容信息。
ci的所有文件加载都要经过控制器调用,因为控制器是CI中的超类,也就是其他的类都依附于它,所以用单一入口方式访问CI应用程序的时候,需要在index.php的后面加上控制器名和控制器中的方法名,如果你对于此没有任何概念或者无法理解,可以去CI的官方网站下载它的官方文档,然后详细了解它的工作方式
CI的官方文档非常详尽易懂,这里描述的是文档上所不存在的基本原理部分。
⑩ thinkphp中单一入口实现的原理
打个比方,大家上 WC,都是男生进一个门,女生进一个门,这两个门就是 WC 的两个入口。
单一入口的原理就是:
现在大家是进一个公共 WC,不管男女都是从最外面的入口进入,交了钱以后才分别进两个门,那最外面的入口就是这个 WC 的单一入口。
所以,单一入口的应用程序实际上就是说用一个文件处理所有的 HTTP 请求。例如不管是新闻列表功能还是新闻编辑功能,都是从浏览器访问 index.php 文件。