用 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框架
扩展阅读