fm-labs/flowphp

该包的最新版本(dev-master)没有可用的许可信息。

PHP 微型框架。

dev-master 2020-12-31 13:04 UTC

This package is auto-updated.

Last update: 2024-09-29 05:22:13 UTC


README

PHP 微型框架

Build Status

需求

  • php 7.0+

安装

$ cd /my/project/dir
$ composer require fm-labs/flowphp dev-master

核心概念

  • Global - 管理单例和全局配置。提供静态便捷助手
  • Application - 连接配置、路由和中间件
  • Router - 连接路由和处理程序
  • Controller - 处理服务器请求
  • Template - 以 PHP 风格渲染参数化模板
  • View - 模板 + 布局模板
  • Manager - 管理配置的适配器的命名对象实例
    • 数据库
    • 缓存
    • 日志
  • RouteHandler - 可调用对象,可能产生以下结果之一
    • ResponseInterface
    • RouteHandler: 将以更新的路由上下文递归调用
    • Closure: 被视为 RouteHandler
    • String: 将作为响应体应用
    • Null: 降级处理。尚未实现
    • Other: 抛出异常

组件

HTTP 堆栈

  • Messages (Request / Response) - 遵循 PSR-7,
  • Handler - 遵循 PSR-15
  • Factory - 遵循 PSR-17
  • Server - 使用 HTTP HandlersHTTP Factories 处理 HTTP Messages
  • MiddlewareQueue - 处理多个请求处理程序

应用

当我们基于 FlowPHP 构建项目时,应用程序是我们工作的主要对象。所有配置、组件和路由的连接都发生在这里。

基本上,应用程序充当服务容器和服务器请求处理程序。标准应用程序有 3 个主要组件:配置、路由和中间件。

中间件

内置中间件

  • ErrorMiddleware - 错误处理
  • RoutingMiddleware - 路由匹配和处理
  • RequestMapperMiddleware - 根据请求构建响应
  • CorsMiddleware - CORS 处理

路由

简单路由器

  • 字符串模板
  • 命名参数
  • 可选参数
  • 传递参数 - 作为函数参数传递给请求处理程序的参数
  • 自定义正则表达式进行参数匹配

模板化

简单的模板引擎

$template = (new Template())
    ->set('myvar', 'myval')
    ->setTemplate('mytemplate'); // resolves to ./templates/mytemplate.phtml

$html = $template->render();

示例

运行测试

$ composer run-script test
// or
$ composer run-script test-verbose
// or
$ ./vendor/bin/phpunit --bootstrap tests/bootstrap.php tests/

待办事项

  • App: 控制器
  • App: 插件
  • Routing: 嵌套路由器
  • Template: 助手
  • Http/Server: Cookie 支持
  • Http/Server: 上传文件支持

更改日志