欧易

欧易(OKX)

国内用户最喜爱的合约交易所

火币

火币(HTX )

全球知名的比特币交易所

币安

币安(Binance)

全球用户最多的交易所

PHP应用:单一文件入口框架简析

2022-10-20 22:29:20 4201

摘要: 单一文件入口应用,所有请求都是通过index.php接收并转发到功能代码中去,因此一些事情变得简单多了,如数据安全性检查,访问统计等。当前比较流行的一些PHP开发框架如Laravel、ThinkPHP等都是采用的单一入口模式。下面咱们来...

单一文件入口应用,所有请求都是通过index.php接收并转发到功能代码中去,因此一些事情变得简单多了,如数据安全性检查,访问统计等。

当前比较流行的一些PHP开发框架如LaravelThinkPHP等都是采用的单一入口模式。

下面咱们来实现一个简单版的单一文件入口框架,包括MVC架构、URL路由的实现。

MVC架构

URL路由原理

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

<?php/**

* PHP单一文件框架设计简析

* 1、MVC架构实现

* 2、URL路由原理

*///URL路由原理/**

* 应用入口,路由作用

* http://localhost/index.php?c=Index&a=Index

*/class App { public $c; public $a; public function run()

{ $c = isset($_GET["c"]) ? $_GET["c"] : "Index"; //url提供类名字的变量名

$a = isset($_GET["a"]) ? $_GET["a"] : "Index"; //url提供方法名字的变量名

$c .= "Controller"; if( class_exists($c) && method_exists($c, $a) ) { $o = new $c();

$o->$a();

}else{

echo "error";

exit();

}

}

}//MVC架构/**

* 模型层

* 获取应用数据作用

*/class Model { //link db、get data}/**

* 视图类

* 编译、缓存及显示模板

*/class View { public function render($tpl)

{ echo "Hi, ".$tpl;

}

}/**

* 控制器

* 所有功能控制器继承该类

*/class Controller { public $view; public $model; public function display($tpl = "")

{ echo $this->view->render($tpl); exit();

}

}//具体功能开发class IndexController extends Controller { /**

* 网站首页

*/

public function Index()

{ $this->display("Index");

} /**

* 网站列表

*/

public function List()

{ $this->display("List");

}

}//单一文件入口$app = new App();$app->run();?>

以上代码保存为index.php,然后浏览

http://localhost/index.php?c=Index&a=Index

http://localhost/index.php?c=Index&a=List

可看到经过我们的路由后输出不同内容!

版权声明:本站所有文章皆是来自互联网,如内容侵权可以联系我们( 微信:bisheco )删除!
友情链接
币圈社群欧易官网