【php】用 Composer 组建了个 PHP 框架

【php】用 Composer 组建了个 PHP 框架

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

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

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

生命周期

【php】用 Composer 组建了个 PHP 框架

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

命令行界面

【php】用 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 - 集合

参考的文章及借鉴的框架

  • https://symfony.com/doc/current/create_framework/index.html - 建议阅读

  • https://github.com/slimphp/Slim - 基本所有的内置组件都实现 PSR 的接口规范, 足够标准化。

  • https://github.com/silexphp/Silex
  • https://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 - 框架应用模板

以上是 【php】用 Composer 组建了个 PHP 框架 的全部内容, 来源链接: utcz.com/a/102582.html

回到顶部