PHP微型框架Flight

PHP

Flight是一款快速,简单,扩展性很强的微型PHP框架,Flight可以让你快速创建REST风格的web应用。使用起来也非常简单,只需要引入flight/Flight.php。Flight支持Url和HTTP METHOD路由、参数过滤、JSON输入输出、HTTP缓存、异常和错误的处理。

Flight框架的内置类:
Engine类:包含了这个框架的核心功能。它的责任是加载HTTP请求,运行已注册的服务,并生成最后的HTTP响应。
Loader类:它负责框架内对象的加载。用自定义的初始化参数来生成新的类实例,并且维护可复用的类实例的列表。它还处理刚才提到过的类的自动加载。
Dispatcher类:它负责框架内事件的分发处理。事件即是对类方法或函数的简单的称呼(别名)。它还允许你在事件上的挂钩点挂载别的函数,能够改变函数的输入或者输出。
Router类:它负责将一个HTTP讲求发送到指定的函数进行处理。它视图将请求的URL和一系列用户定义的URL范式进行匹配。
Route类:它负责路由的具体实现。Router相当于对Route的包装。
Request类:它代表了一个HTTP请求。所有来自$_GET,$_POST,$_COOKIE,$_FILES中的数据都要通过Request类获取和访问。默认的Request属性就包括url,base,method,user_agent等。
Response类:对应于Request,它代表了一个HTTP响应。这个对象包括了返回头,HTTP状态码和返回体。
View类:视图类负责将输出展示。它提供了在渲染时管理视图数据和将数据插入视图模板的函数。
Collection类:它允许你既可以以使用数组的方式,也能以使用对象的方式来访问数据。

Flight框架核心函数:
Flight::map($name, $callback) // 创建一个自定的框架方法
Flight::register($name, $class, [$params], [$callback]) //将一个类注册成框架方法
Flight::before($name, $callback) // 添加框架方法的前置过滤器
Flight::after($name, $callback) // 添加框架方法的后置过滤器
Flight::path($path) // 添加类自动加载(autoloading)的路径
Flight::get($key) // 获取某个变量的值
Flight::set($key, $value) // 设置变量的值
Flight::has($key) // 某个变量是否被设值
Flight::clear([$key]) // 清除一个变量
Flight::init() // 初始化框架到默认的设定
Flight::app() // 获取整个应用对象的实例

Flight框架扩展函数:
Flight::start() // 开启框架(接收响应开始工作)
Flight::stop() // 框架停止并且发送返回响应
Flight::halt([$code], [$message]) // 停止框架并返回一个可选的http状态码和信息
Flight::route($pattern, $callback) // 将一个URL匹配到一个回调中
Flight::redirect($url, [$code]) // 重定向到另一个URL
Flight::render($file, [$data], [$key]) // 渲染模板文件
Flight::error($exception) // 发送HTTP 500响应
Flight::notFound() // 发送HTTP 404响应
Flight::etag($id, [$type]) // 运行HTTP Etag缓存
Flight::lastModified($time) // 运行HTTP last modified缓存
Flight::json($data, [$code], [$encode]) // 发送JSON响应
Flight::jsonp($data, [$param], [$code], [$encode]) // 发送JSONP响应

Flight实例:

1
2
3
4
5
6
7
//引入Flight框架
require 'flight/Flight.php';
//设置route路由请求和响应
Flight::route('/', function(){
echo 'hello,Flight PHP!';
});
Flight::start();

Flight中文文档https://github.com/baizhebz/flight-doc-cn

来源:PHP微型框架Flight

发表评论

电子邮件地址不会被公开。 必填项已用*标注