用 Composer 组建了个 PHP 框架2020-12-22 11:52:32

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

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

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

客户端向入口脚本 index.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.
');

$response = $next($request);

printf('
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 - ORMtwig/twig - 模板引擎vlucas/phpdotenv - envtightenco/collect - 集合参考的文章及借鉴的框架https://symfony.com/doc/current/create_framework/index.html - 建议阅读https://github.com/slimphp/Slim - 基本所有的内置组件都实现 PSR 的接口规范, 足够标准化。https://github.com/silexphp/Silexhttps://github.com/jadephp/jade - slince 大神自己实现了 HTTP 内核https://github.com/laravel/framework官方文档https://www.guanguans.cn/coole源码链接https://github.com/guanguans/coole - 框架核心代码https://github.com/coolephp/skeleton - 框架应用模板

特别申明:本文内容来源网络,版权归原作者所有,如有侵权请立即与我们联系(cy198701067573@163.com),我们将及时处理。PHP即“超文本预处理器”,是一种通用开源脚本语言。PHP是在服务器端执行的脚本语言,与C语言类似,是常用的网站编程语言。PHP独特的语法混合了C、Java、Perl以及 PHP 自创的语法。利于学习,使用广泛,主要适用于Web开发领域。

Tags 标签phpphp框架

扩展阅读

php composer 框架,用 Composer 组建了个 PHP 框架相关推荐

  1. php实现项目的日志记录功能,tp5框架使用composer实现日志记录功能示例

    本文实例讲述了tp5框架使用composer实现日志记录功能.分享给大家供大家参考,具体如下: tp5实现日志记录 1.安装 psr/log composer require psr/log 它的作用 ...

  2. composer搭建php框架,用 Composer构建自己的 PHP 框架之基础准备

    『Composer 一统天下的时代已经到来!』 --白岩松 "一个时代结束了,另一个时代开始了." Framework Interoperability Group(框架可互用性小 ...

  3. php组件是啥,浅谈PHP组件、框架以及Composer

    本篇文章主要介绍了PHP组件.框架以及Composer,具有一定的学习价值,感兴趣的朋友可以了解一下. 什么是组件 组件是一组打包的代码,是一系列相关的类.接口和Trait,用于帮助我们解决PHP应用 ...

  4. php 建立自己的框架,利用 Composer 一步一步构建自己的 PHP 框架(一)——基础准备...

    "一个时代结束了,另一个时代开始了." Framework Interoperability Group(框架可互用性小组),简称 FIG,成立于 2009 年.FIG 最初由几位 ...

  5. 使用 Composer 为 ThinkPHP(3.2.3)框架添加和管理组件

    使用 Composer 为 ThinkPHP(3.2.3)框架添加和管理组件 环境:Windows 10 64位 PHP 版本:5.5.12 框架:ThinkPHP 3.2.3 Tips: 组件:打包 ...

  6. composer搭建php框架,利用 Composer 一步一步构建自己的 PHP 框架(一)——基础准备...

    『Composer 一统天下的时代已经到来!』--白岩松 "一个时代结束了,另一个时代开始了." Framework Interoperability Group(框架可互用性小组 ...

  7. php yii composer,PHP Yii2 composer环境安装

    PHP Yii2 composer环境安装 composer 安装 任意目录执行: php -r "copy('https://install.phpcomposer.com/install ...

  8. win10使用Composer-Setup安装Composer以及使用Composer安装Yii2最新版

    1:下载 ca-bundle.crt和cacert.pem(见导航栏--文件) 将这两个文件放在php目录下 2:php.ini中添加上述两个文件的路径 curl.cainfo=C:/xampp/ph ...

  9. 有一个php的类库网站_可以composer下载的,composer轻量级的HTTP开发库

    简介: #!/usr/bin/env php /* * This file is part of Composer. * * (c) Nils Adermann *     Jordi Boggian ...

最新文章

  1. Python:数据提取之JSON与JsonPATH
  2. 再见 for 循环!pandas 提速 315 倍~
  3. 18.16 gcc-3.4.5编译错误及解决方法集锦
  4. 某宝千万级规模高性能、高并发的网络架构
  5. Linux学习:shell命令(文件和目录相关)
  6. [LeetCode]657.Judge Route Circle
  7. Git 提交的正确姿势:Commit message 编写指南
  8. 深入浅出数据分析pdf
  9. html包含字体文件路径,系统字体文件夹路径
  10. termux目录_Termux 入门教程:架设手机 Server 下载文件
  11. 电子签章助力水电气公共事业服务“一网通办”
  12. PPT嵌入视频,添加控件按钮控制视频播放
  13. 开源音乐播放器_测试4个开源音乐播放器等
  14. 微信推送消息遇到的坑 - 返回error code 40008,并且发送不成功
  15. html页面出现504,web生产环境故障页面提示504错误
  16. Attempt to read from field ‘android.os.VibrationEffect com.android.server.VibratorService$Vibration.
  17. (经验分享)作为一名普通本科计算机专业学生,我大学四年到底走了多少弯路
  18. 一级计算机基础知识考试成绩截图,全国计算机一级考试成绩分析与总结
  19. TWebLive基于TRTC和IM实现web群直播
  20. python群控微信_带你用 Python 实现自动化群控(入门篇)

热门文章

  1. 找出你的windows子系统(WSL)的安装位置
  2. linux动态库路径生效,Linux下如何解决动态库的链接问题
  3. windows 一键安装apache服务器 windows傻瓜式安装apache2 web服务器管理软件
  4. EDI许可申请 简介
  5. ❤️和广告说再见,将“沉浸式阅读”进行到底❤️
  6. Java基础教程【第七章:包和接口】
  7. 缓存击穿、缓存穿透、缓存雪崩简单总结
  8. java8的stream特性_Java8新特性介绍:Stream API
  9. java c 传递字符串数组_JNI传递字符串数组J-StringArray
  10. ctp怎么设置java的编码为GBK_GitHub - yuelong2456/java-ctp: java包装的上期ctp,用swig技术实现。...