多数大学生出来选择的工作和专业无关
首页 > 专业知识

php单一入口模式详细讲解

时间:2018-08-24 17:54:40 [来源]:郑州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 则可以定义为访问内容详细页等,具体实现代码如下:
  查看代码打印
  1
  $action=$_GET['action']==''?'index':$_GET['action'];//从url中取出action参数,如果没有提供action参数,就设置一个默认的'index'作为参数
  2
  include('files/'.$action.'.php');//根据$action参数调用不同的代码文件,从而满足单一入口实现对应的不同的功能
  以上这个就实现了一个最简单的单一入口模式程序,当然真正的单一入口模式会比这个要复杂很多。但只要懂得如何合理组织各个功能的处理代码并遵循一定的步骤,也可以轻松的解决掉这个难题,下面就一个后台的例子来做一下说明:
  比如我们现在要做一个新闻管理的后台。那么首先,对于应用程序的功能要做出一个合理的分解。例如后台的新闻栏目可能包含“添加新闻”、“编辑新闻”、“删除新闻”等多个功能。这时我们就可以将这一组逻辑上关联的功能组合到一个功能模块中,称为“新闻管理”模块。
  按照上面的方法整理完应用程序的功能,我们就会得到多个功能模块,而每个模块又是由多个功能组成(实际上,即便不是单一入口应用程序,功能的整理也是必须的步骤)。
  整理完功能后,我们就需要确定如何存放各个功能的代码。这里我推荐两种方式:
  1、每个功能模块一个子目录,目录里的每一个文件就是一个功能的实现代码。
  这种方式的好处是每个功能的代码都互相隔离,非常便于多人协作。缺点是每个功能之间共享代码和数据不那么方便。例如新闻管理模块中的所有功能都需要一个“取出新闻栏目记录”的功能,那么采用这种多个独立文件的组织方式,“取出新闻栏目记录”就只能写在另一个文件中,然后由需要该功能的文件include 进去。
  2、每个模块一个文件,模块中的每个功能写成一个函数或者一个类方法。
  好处不用多说了,非常便于共享代码和数据。缺点就是如果几个人同时改,容易发生冲突。不过借助版本控制软件和差异比较合并工具,冲突还是很容易解决的。
  单一入口应用程序对应多入口有哪些优势呢?
  单一入口应用程序的所有http请求都是通过index.php接收并转发到功能代码中去的,所以在index.php里面就能完成许多实际工作(所有页面都需要做的且都一样的工作)。比如进行集中的安全性检查,访问统计等等,如果不是单一入口,那么开发者就必须记得在每一个文件的开始加上安全性检查代码,当然,你也许会说,多入口的安全性检查可以写到另一个文件中,然后include一下就可以了。但实际针对一个相对较大型一点的应用项目,在几十个文件中保持头部的几个include都一致可不是一件让人省心的事。
  与安全性检查类似。在入口里,我们还可以对url参数和post进行必要的检查和特殊字符过滤、记录日志、访问统计等等各种可以集中处理的任务。这样就可以看出,由于这些工作都被集中到了index.php来完成,可以减轻我们维护其他功能代码的难度。
 
  PHP的高级技巧有哪些
  全球超过300万个互联网网站的管理员都在使用PHP,使得它成为最为普及的服务器端脚本语言之一。其特点是运行速度快、稳定可靠、跨平台,而且是开放源代码软件。随你使用的水平不同,PHP可以很简单,也可以很复杂,可以只使用它发送HTML表格元素,还可以在PHP应用程序中集成Java和XML。
  如果你对PHP有一定的了解或者看过一些初步的教材,这些技巧可以扩展你对PHP的认识,使你掌握一些常见的和高级的PHP功能。
  把PHP安装为Apache的DSO
  PHP在Linux/Unix平台上经常与Apache搭配使用,在安装PHP时,有三种安装方式可供选择:静态模式、动态模式(DSO)、CGI二进制模式。
  由于易于维护和升级,我强烈建议以DSO方式安装PHP。例如,初次安装时如果安装的PHP仅支持数据库,随后希望再安装支持加密的模块,只要运行“make clean”,添加新的配置选项,然后再运行“make”和“make install”即可,一个新的PHP模块就会安装在Apache中适当的位置上,然后重新启动Apache,而无需重新编译Apache。
  下面的步骤将安装一个全新的Apache,并以DSO方式安装PHP:
  1、从Apache软件基金会得到最新版本的Apache源代码;2、把得到的源代码放到/usr/local/或者/opt/目录下,或者你指定的任意目录中;3、运行Gunzip对文件进行解压缩,得到后缀为.tar的文件;4、运行下面的命令,把文件安装到apache_[version]目录中:
  tar -xvf apache_[version].tar
  5、进入/usr/local/apache_[version]目录(或者在步骤4中安装压缩文件的目录);6、键入下面的命令为编译Apache作准备,用你自己的路径替换其中的[path],例如,/usr/local/apache[version],现在已经设置了mod_so的新值,它将允许Apache使用DSO模块;7、回到提示符状态后键入make,并等待再次回到提示符状态;8、执行“make install”命令。
  至此,Apache已经安装完毕,系统将重回到提示符状态。接下来我们开始安装PHP:
  1、在PHP主页的下载区中找到最新版本的链接;2、把文件下载到一个适当的目录中,例如/usr/local/或/opt/或者你指定的任意目录中;3、运行Gunzip对文件进行解压缩,得到后缀为.tar的文件;4、执行下面的命令把文件安装在php-[version]目录中:
  tar -xvf php-[version]
  5、进入/usr/local/php-[version]目录或在步骤4中指定的目录;至此,已经作好了以DSO方式安装PHP的准备工作,唯一需要修改的配置选项是with-apxs(这是Apache的bin目录中的一个文件)。为了得到较高的性能,我没有安装对MySQL的支持模块。
  ./configure --with-mysql=/[path to mysql] --with-apxs=/[path to apxs]
  6、回到提示符状态后执行make命令,等待重新返回到提示符状态;7、执行make install命令。
  至此,系统以DSO方式在Apache的模块目录中安装了PHP,并对Apache的httpd.conf文件作适当的修改后返回到提示符状态。回到提示符状态后,你还需要对Apache的httpd.conf文件作一些修改。
  1、找到包含有ServerAdmin的一行,添加你的电子邮件地址,如下所示:
  ServerAdmin you@yourdomain.com
  2、找到以ServerName开头的行,把它改为真正的值,例如:
  ServerName localhost
  3、找到内容如下所示的小节:
  # And for PHP 4.x, use:
  #
  #AddType application/x-httpd-php .php
  #AddType application/x-httpd-php-source .phps修改这些行的内容,使PHP 4.0的AddType不再成为注释,并添加希望在PHP中使用的文件后缀名,上面的内容变为如下所示的内容:
  # And for PHP 4.x, use:
  #
  AddType application/x-httpd-php .php .phtmlAddType application/x-httpd-php-source .phps保存文件,回到上一级目录,执行下面的命令重新启动Apache:
  ./bin/apachectl start
  如果在启动时没有出现错误提示信息,就可以通过创建一个名为phpinfo.php的只有如下所示一行内容的文件,对安装的Apache、PHP进行测试:
  <? phpinfo() ?>
  把这个文件保存到Apache的文档根目录(htdocs)中,然后开启浏览器,键入http://localhost/phpinfo.php地址,屏幕上就会出现许多的变量和它们的值。
  如果要重新配置PHP,需要再次运行make clean命令,然后执行带有一系列选项的./configure命令,然后再执行make和make install命令,Apache的目录模块中就会出现一个新的模块,只要再重新启动Apache加载这个新的模块,就一切OK了。
 

上一篇:PHP二维数组赋值的相关知识介绍

下一篇:PHP如何为APP开发接口流程