最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • 用 Composer 组建了个 PHP 框架

    正文概述 转载于:掘金(guanguans)   2020-12-22   431

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

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

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

    生命周期

    用 Composer 组建了个 PHP 框架

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

    命令行界面

    用 Composer 组建了个 PHP 框架

    安装框架

    $ 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();
    

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

    • guanguans/di - 容器(illuminate/container 的衍生版)
    • symfony/http-kernel - HTTP 内核
    • symfony/http-foundation - HTTP 对象管理层
    • symfony/routing - 路由
    • symfony/event-dispatcher - 事件调度器
    • filp/whoops - 错误处理
    • symfony/error-handler - 错误处理
    • monolog/monolog - 日志
    • mpociot/pipeline - 管道(中间件的实现)
    • symfony/console - 命令行
    • symfony/finder - 文件管理
    • topthink/think-orm - ORM
    • twig/twig - 模板引擎
    • vlucas/phpdotenv - env
    • tightenco/collect - 集合

    参考的文章及借鉴的框架

    • symfony.com/doc/current… - 建议阅读
    • github.com/slimphp/Sli… - 基本所有的内置组件都实现 PSR 的接口规范, 足够标准化。
    • github.com/silexphp/Si…
    • github.com/jadephp/jad… - slince 大神自己实现了 HTTP 内核
    • github.com/laravel/fra…

    官方文档

    • www.guanguans.cn/coole

    源码链接

    • github.com/guanguans/c… - 框架核心代码
    • github.com/coolephp/sk… - 框架应用模板

    起源地下载网 » 用 Composer 组建了个 PHP 框架

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元