php单入口路由设计,PHP单文件入口URL路由原理

本文介绍了PHP中的单一入口模式,通过示例代码展示了如何实现简单的URL路由。浏览器通过URL请求如`http://server/index.php?C=Controller1&M=Method1`,PHP根据查询参数找到并执行相应的控制器类和方法。该模式简化了路径处理,并利用PHP的可变特性避免了反射等复杂操作。
摘要由CSDN通过智能技术生成

1 单一入口模式的好处

所有的服务器端文件和目录的起始路径都是基于这个入口文件index.php,路径处理变得简单

2 简单实现代码

直接上代码:

/*******************************************************

*

* URL 路由原理展示代码

*

* 浏览器访问地址: http://server/index.php?C=Controler1&M=Method1

* 根据C找到控制器类,再根据M找到方法,然后执行这个方法

*

* ****************************************************/

$C = isset($_GET['C'])?$_GET['C']:NULL;

$M = isset($_GET['M'])?$_GET['M']:NULL;

if($C != NULL && $M != NULL && class_exists($C) && method_exists($C, $M)) {

$cObj = new $C();

$cObj->$M();

}else{

echo '找不到控制器或方法';

exit;

}

// 控制器1

class Controler1

{

public function Method1()

{

echo 'Controler1, Method1';

}

public function Method2()

{

echo 'Controler1, Method2';

}

}

// 控制器2

class Controler2

{

public function Method1()

{

echo 'Controler2, Method1';

}

public function Method2()

{

echo 'Controler2, Method2';

}

}

基本思路是浏览器端通过URL字符串提供控制器类的名字和方法的名字,PHP据此找到对应的类和方法。

PHP存在可变变量、可变函数、可变类,变量名、类名、方法名本身也可以作为变量的值在语句中使用,这在C#中只能通过反射解决吧。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值