PHP 单一入口的特有作用

apache配置php实现单一入口方法 在apache的httpd.conf加入,需要把LoadModule rewrite_module modules/mod_rewrite.so前面的“#”去掉 代码如下:DocumentRoot / <Directory>Options Indexes FollowSymLinks MultiViewsAllowOverride None#AllowOverride All <IfModule>RewriteEngine onRewriteBase /#不显示index.php RewriteCond %{REQUEST_FILENAME} !-dRewrit 立即下载
在说单一入口之前,先说说多入口。Discuz!, PHPCMS 2008, DedeCMS 都是采用多入口的结构。

多入口,即通过访问不同的 php 文件运行对应的功能。如:

/index.php - 网站首页
/show.php?id=1 - 内容页
/list.php?page=2 - 列表页
/login.php - 用户登录页
……

多入口都是通过包含头文件统一运行环境,即初始化系统。如:

/include/common.inc.php - 头文件,PHP 文件 include 它后便完成了初始化工作,例如可以使用系统的基础函数。

/index.php
<?php
include './include/common.inc.php' // 包含头文件,基本是每个入口 php 文件的首行代码。
……
?>

拿 PHPCMS 2008 的头文件来举例, PHPCMS 2008 在头文件中完成了基础函数的加载,常量的定义,系统配置的载入,POST,GET 数据的过滤,数据库类的实例化,保持用户登录等等等等一系列操作。
反正就是个 php 文件嘛,想做什么直接往里加就是了。

所以,所谓的安全检查,统一检查,权限控制等,用头文件同样可以实现,所谓“单一入口”只不过是换了一种形式,并无实质性的变化。

以前我就是这样认为的。

现在,假设用 CMS 为客户建一个站( CMS 是多入口的):建栏目,配网站,卡拉卡拉一段忙碌后,网站可以上线了,放在这个地址下:

localhost/gz/

没错,这次建的是 gz 这个地区的地区站,客户认为网站做得不错,希望做多一个 bj 地区的地区站。 bj 站的栏目结构,内容,功能模块等都与 gz 站有所不同。

好,现在问题来了,上面提到的三个多入口的系统,都设计成一套程序一个环境,即一套程序只对应一个数据库。对于上面的需求( bj 站),除非修改整套程序的结构(这是不切实际的),否则就只能复制多一份源代码,指向另一个数据库。

于是,我便复制多一份源代码,指向 bj 数据库( gz 站则指向 gz 数据库),建栏目,配网站,卡拉卡拉一优忙碌后,网站又可以上线了,放在这个地址下:

localhost/bj/

所以,现在有两套一样的程序在运行。

然后,客户想改一改 gz 站的功能,于是我修改了 gz 的代码。然后,客户想改一改 bj 站的功能,于是我修改了 bj 的代码。然后,客户想在 bj 站上做与 gz 同样的修改,于是我得把 gz 的修改复制到 bj 中,然后……

于是,我不得不维护两份实际上是“一样”的代码。
假如网站运营得不错,客户又建了若干个地区站,我维护的便是若干份“一样”的代码——这根本就是恶梦。

现在到单一入口登场了。

单一入口,就是访问同一个文件加不同参数运行不同的功能。如:

/index.php - 单一入口,默认显示首页
/index.php?action=show&id=1 - 用 action 参数指明显示内容页
/index.php?action=list&page=2 - 显示列表页
/index.php?action=login - 用户登录页
……

index.php 这个入口做的便是头文件做的初始化操作(外加一些调度),包括加载网站的配置。

现在我们来假设建站用的 CMS 是单一入口的设计,在完成 gz 站后,面对同样的需求( bj 站),我只需要在 /bj/ 目录入多建一个入口文件,加载指向 bj 数据库的配置,再配配数据卡拉卡拉什么的,就完事了!

于是,我只需要维护一份源代码。

这便是单一入口特有的作用——构造环境。
使用哪个数据库就是环境的一种,类似的还有:用内存缓存还是文件缓存,用 mysql 还是 mssql 等。

除非在设计阶段特别留意,否则,头文件的结构都会被写成“一套程序一个环境”的结构。而采用单一入口结构,无论是否留意,都可以轻易实现“一套程序多个环境”。这才是使用单一入口的真正理由。
获取B站某用户更多的关注数和粉丝数 获取B站某用户更多的关注数和粉丝数 相关记录 一、 前言 B 站最多只能翻 5 页用户的关注数和粉丝数,如何能够看到更多呢。 方法我也是从网上翻来的,记载博客里,算是我研究过这个话题了。 二、需要的东西 关注数的 api https://api.bilibili.com/x/relation/followings?vmid=2884629&pn=1&ps=20&order=desc&jsonp=jsonp 关注者(粉丝)的 api https://api.bilibili. 阅读详情

相关推荐

STM32接入CH340芯片的升级电路及初始化进入升级模式(死机)问题处理

MCU-REST 在 MCU-BOOT0 处于低电平状态下,进行下拉操作,在MCU-REST 与 MCU-BOOT0 恢复正常电平时,将导致MCU死机,MCU-REST 先于 MCU-BOOT0 下拉可解决该问题;MCU-REST 在 上升沿结束时将判断 MCU-BOOT0 的状态,MCU-BOOT0 处于高电平,MCU死机,MCU-BOOT0 处于低电平 MCU 正常;

LuDvei的博客 2490

php接收不到url传值_PHP安全:单一入口

一次性付费进群,长期免费索取教程,没有付费教程。进微信群回复公众号:微信群;QQ群:460500587教程列表见微信公众号底部菜单 |本文底部有推荐书籍微信公众号:计算机与网络安全ID:Computer-networkPHP项目使用单一入口,用一个入口文件处理所有的HTTP请求和返回所有的请求数据。例如,不管是列表页还是文章页,都是从浏览器访问index.php文件,这个文件就...

weixin_39575850的博客 223

并网逆变器学习笔记5---三电平DPWM

三电平DPWM

圆桌骑士的博客 1万+

php 特有,PHP单一入口的特有作用

在说单一入口之前,先说说多入口。Discuz!, PHPCMS 2008, DedeCMS 都是采用多入口的结构。多入口,即通过访问不同的 php 文件运行对应的功能。如:/index.php - 网站首页/show.php?id=1 - 内容页/list.php?page=2 - 列表页/login.php - 用户登录页……多入口都是通过包含头文件统一运行环境,即初始化系统。如:/includ...

weixin_36314117的博客 270

环境科研人必备:手把手教你用EPISuite 4.1批量预测化合物毒性(附ECOSAR实战)

本文详细介绍了EPISuite 4.1在环境毒理学研究中的应用,重点解析了ECOSAR模块的化合物毒性预测技术。通过批量处理实战和科研案例,帮助环境科研人员快速评估化学物质对水生生态系统的风险,提升工作效率。文章还涵盖了EPISuite核心模块的功能分类及ECOSAR模型的技术原理与算法特点。

weixin_28738165的博客 540

Tomcat漏洞——弱口令爆破

靶机:CentOS7 IP:192.168.100.40。攻击机:kali IP:192.168.100.60。版 权 声 明:本博客所有文章除特别声明外,均采用。文章版权归作者所有,未经允许请勿转载!作 者:PeiyuJue。

weixin_57379923的博客 909

ThinkPHP入口文件编写的深入探讨

在Web开发中,框架的入口文件扮演着至关重要的角色,它不仅是应用程序的起点,也是连接用户请求与后端逻辑处理的桥梁。ThinkPHP作为一款流行的PHP开发框架,其入口文件的编写对于整个应用的稳定性和性能有着不可忽视的影响。就个人而言ThinkPHP入口文件的编写对于整个应用的稳定性和性能有着重要影响。当用户发送一个HTTP请求时,Web服务器会将这个请求转发给入口文件,由入口文件来处理和分发。ThinkPHP的入口文件,通常命名为或(取决于项目的目录结构),是用户访问Web应用的唯一路径。

2401_85977298的博客 1021

基于电子海图的水面无人艇全局路径规划

Research and Implementation of Global Path Planning for Unmanned Surface Vehicle Based on Electronic Chart (基于电子海图的水面无人艇全局路径规划)   该论文已经在ICMIR2017会议上发表,附上springer的文献地址 Research and Implementation of Gl...

weixin_30797199的博客 1590

PHP框架开发教程(四) 单一入口

多入口在以前的框架中是存在的, 通常可以归结为 每个模块一个入口文件. 通过 在入口文件中配置不同的参数, 引导框架 执行不同的路径.  单一入口模式 更为 简洁, 模块名称只作为一个入口参数, 框架通过判断模块名称执行相应的 程序. 单一 入口的优点极为明显 ,  整个框架的流程更为清晰. 如果需要在框架层面 增加一些功能,会更方便. 1. 最近 需要对所有程序的调

bluehire的专栏 1130

基于555定时器的呼吸灯电路

呼吸灯是指LED灯在芯片的控制下完成由亮到暗的逐渐变化,感觉就像人在呼吸,其广泛使用在手机上,起到一个通知提醒的作用。呼吸灯在许多灯光装饰上也有大量使用,如音响、汽车广告牌等,在生活中较为常见。...

qq1074237849的博客 9492

大模型之Spring AI实战系列(二十六):Spring Boot + DeepSeek 实战指南:构建AI聊天应用

在人工智能技术飞速发展的今天,大型语言模型已经成为了推动技术创新的重要力量。DeepSeek作为国内领先的大型语言模型提供商,其推出的DeepSeek系列模型在多个领域都展现出了卓越的性能。本文将详细介绍如何使用Spring Boot框架集成DeepSeek API,构建一个简单的AI聊天应用。我们将实现两个核心功能:普通文本生成和流式文本生成。

寻道AI,探索AI无限可能! 2258

php程序入口,php入口文件的作用

php入口文件的作用php入口文件可以实现自动加载功能。解析PHP入口文件的自动加载功能php的自动加载:在php5以前,我们要用某个类或类的方法,那必须include或者require,之后才能使用,每次用一个类,都需要写一条include,麻烦php作者想简单点,最好能引用一个类时,如果当前没有include进来,系统能自动去找到该类,自动引进~于是:__autoload()函数应运而生。通常...

weixin_42134168的博客 691

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

PHP框架中什么是单一入口和多入口,单一入口的优缺点?使用场景是什么?底层原理是什么?

【代码】PHP框架中什么是单一入口和多入口,单一入口的优缺点?使用场景是什么?底层原理是什么?

长风破浪会有时的博客 1090

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

php单一入口模式详细讲解

php单一入口模式可谓是现在一种比较流行的大型web应用开发模式,比如当前比较流行的一些php开发框架,zend,thinkphp,qeephp,还有cakephp 等他们都是采用的单一入口模式的。本文将就什么是单一入口模式,单一入口模式有哪些优点以缺点做一下研究。 什么是单一入口? 在解释什么是单一入口之前,先说说与之对应的多入口。多入口即通过访问不同的 php 文件运行对应的功能。

lifushan123的专栏 1539

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

PHP 单一入口

转载自:点击打开链接 单一入口概述 单一入口的应用程序就是说用一个文件处理所有的HTTP请求,例如不管是列表页还是文章页,都是从浏览器访问index.php文件,这个文件就是这个应用程序的单一入口。 打个比方,大家都要上WC,都是男生进一个门,女生进一个门,这两个门就是WC的两个入口。而现在去一个公园里面的WC,外面还有一个门,不管男女都从最外面的门进入,交了钱以后才进入里面的男厕所

梦空间 4323

php框架单一入口和多入口,PHP 单一入口

单一入口概述单一入口的应用程序就是说用一个文件处理所有的HTTP请求,例如不管是列表页还是文章页,都是从浏览器访问index.php文件,这个文件就是这个应用程序的单一入口。打个比方,大家都要上WC,都是男生进一个门,女生进一个门,这两个门就是WC的两个入口。而现在去一个公园里面的WC,外面还有一个门,不管男女都从最外面的门进入,交了钱以后才进入里面的男厕所门或女厕所门,而这个最外面的门就是这个W...

weixin_39980917的博客 768

PHP项目MVC单一入口原理

项目单一入口整个网站(分前后台)通过index.php作为请求的入口(网站中唯一的一个不是类的PHP文件),会使用系统的基础类(初始化类)进行初始化,再进入对应的模块类(Controller)再进行其他处理。 单一入口原理   项目代码的布局  单一入口网站开发实现项目入口实现index.php:加载初始化类,进行项目的初始化  初始化系统Application.class.php。/Core与i

猿码互联 2960

php 单一入口实现

在家闲的没事随便写的。。。 //代码有点乱。。。。 <?php header("Content-Type: text/html;charset=utf-8"); define("MODEL",2); define("REAR",1); define("TP","html"); // 当后缀为 .html 可以吧.html 去除 //获取 index.php 后的参数

徒步远行 1469

PHP框架单入口文件原理浅析

大部分PHP框架都是单一入口模式,进来的所有HTTP请求都会指向一个文件,从这个入口文件进去,进入再去访问别的文件进行对应的操作,而这个原理就是服务器与PHP的配合。 这里以Nginx为例,nginx的配置文件(最好是单独一个项目nginx配置,然后include到nginx的配置中去)会设置项目的目录,接收到的http请求会先到这个目录中去找对应的文件,但是这一步往往是走不通的,Nginx就把

谦进 1246

什么是单一入口

在PHP中,大多数框架都拥有单一入口文件,用一个文件来处理所有的http请求,所有的浏览器访问都从index.php这个单一入口开始。index.php这个文件可以完成一些实际的工作,其中就有将所有的HTTP请求集中在一起做安全性检查,如果不是单一入口那么开发者就需要在每个文件的开始加上安全性检查代码(当然也可以写到一个文件中include就可以了),还可以对url和post参数进行必要的检查和特...

珞羽飘凌个人博客 1333

PHP单一文件入口框架简析

单一文件入口应用,所有请求都是通过index.php接收并转发到功能代码中去,因此一些事情变得简单多了,如数据安全性检查,访问统计等。 当前比较流行的一些PHP开发框架如Laravel、ThinkPHP等都是采用的单一入口模式。 下面咱们来实现一个简单版的单一文件入口框架,包括MVC架构、URL路由的实现。 MVC架构 MVC架构 Controller控制器是Model和View两者交互的中介,...

weixin_34293902的博客 368

php如何使用自动加载(重写url形成单一入口)

事情是这样的,昨天我面了个试,发现自己对自动加载了解的很片面,于是我就去看自动加载的机制,而网上的例子讲的都是方法含义,于是我自己写了个简单的例子。 什么是自动加载了?在php5之前是没有自动加载的,所以文件之间的引入单纯靠的是 大量的require/include,但是如果一个文件存在很多require那事情就大了,于是这时候引入了自动加载机制。 自动加载机制一开始是只有一个__autolo

Lisam Blog 3483

php程序入口,PHP实现单一入口文件

基本思路1.入口文件(通过.htaccess文件中的rewrite功能把所有请求都转向这个文件)2.通过URL传参 访问对应类的名字及其方法1.1.htaccess 文件Options -MultiViewsRewriteEngine On# Redirect Trailing Slashes...RewriteRule ^(.*)/$ /$1 [L,R=301]# Handle Front Co...

weixin_33917663的博客 466
上一篇: 2012 年计划
下一篇: 用 bash 实现临时备份还原脚本
gevolution90
博客等级 码龄18年 19粉丝 67原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值