大约在两三年前本身就有过写个 PHP web 框架的想法,期间也尝试过去实践开发,但老是因为各类各样的缘由并无完成。php
此次终于恒心下来,忙里偷闲的组建了一个本身的 PHP 微框架。前先后后零零碎碎的开发了快一个月的时间,直到今天完成文档的编写,才向你们呈现。html
除了框架自己的(Coole)核心代码,还提供一个框架应用(coolephp/skeleton)模板,另外编写了一份简陋的文档, 望能给 也想写框架的人带来一点参考(大神请忽略)。laravel
生命周期
客户端向入口脚本 index.php 发起请求。
入口脚本中建立应用,向应用中注册配置服务、核心服务、第三方服务。
定义路由,载入到应用中。
启动运行应用。
建立请求对象。
根据请求对象解析路由,建立控制器实例。
动做调用模型数据,渲染到视图,生成响应对象。
管道过滤响应。
返回响应给客户端。
终止生命周期。
命令行界面
安装框架
$ composer require guanguans/coole -vvv
快速开始
use Guanguans\Coole\App;
use Guanguans\Coole\Facade\Router;
use Symfony\Component\HttpFoundation\Request;
require __DIR__.'/vendor/autoload.php';
// 1. 建立应用
$app = new App();
$app['debug'] = true;
// 2. 定义一个带中间件的路由
Router::get('/', function (){
return 'This is the Coole framework.';
})->setMiddleware(function (Request $request, Closure $next){
printf('Before request.
');
$response = $next($request);
printf('
After request.');
return $response;
});
// 3. 监听运行
$app->run();
框架中每项功能职责所用到的组件
参考的文章及借鉴的框架
官方文档
源码连接