用 Composer 组建了个 PHP 框架

大约在两三年前自己就有过写个 PHP web 框架的想法,期间也尝试过去实践开发,但总是由于各种各样的原因并没有完成。

这次终于恒心下来,忙里偷闲的组建了一个自己的 PHP 微框架。前前后后零零碎碎的开发了快一个月的时间,直到今天完成文档的编写,才向大家呈现。

除了框架本身的(Coole)核心代码,还提供一个框架应用(coolephp/skeleton)模板,另外编写了一份简陋的文档, 望能给 也想写框架的人带来一点参考(大神请忽略)。

官方文档

源码链接

生命周期

  1. 客户端向入口脚本 index.php 发起请求。
  2. 入口脚本中创建应用,向应用中注册配置服务、核心服务、第三方服务。
  3. 定义路由,载入到应用中。
  4. 启动运行应用。
  5. 创建请求对象。
  6. 根据请求对象解析路由,创建控制器实例。
  7. 动作调用模型数据,渲染到视图,生成响应对象。
  8. 管道过滤响应。
  9. 返回响应给客户端。
  10. 终止生命周期。

命令行界面

安装框架

$ composer require guanguans/coole -vvv

快速开始

<?php

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.<br>');
    $response = $next($request);
    printf('<br>After request.');

    return $response;
});

// 3. 监听运行
$app->run();

框架中每项功能职责所用到的组件

参考的文章及借鉴的框架

php
本作品采用《CC 协议》,转载必须注明作者和本文链接
No practice, no gain in one's wit. 我的 Gitub
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 6

先支持一波

3年前 评论

@phpman2021 是写组件的作者牛逼,我只是个组装者 :smiley:

3年前 评论
celaraze

大佬的 PHP-DI 也很强,多带带我

3年前 评论

@Celaraze 共同学习,一起进步 :smiley:

3年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!
未填写
文章
55
粉丝
126
喜欢
971
收藏
1332
排名:46
访问:15.2 万
私信
所有博文
社区赞助商