入门客AI创业平台(我带你入门,你带我飞行)
博文笔记

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

创建时间:2016-11-15 投稿人: 浏览次数:275

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

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

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

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

MVC架构

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

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

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

声明:该文观点仅代表作者本人,入门客AI创业平台信息发布平台仅提供信息存储空间服务,如有疑问请联系rumenke@qq.com。