fm-labs / flowphp
该包的最新版本(dev-master)没有可用的许可信息。
PHP 微型框架。
dev-master
2020-12-31 13:04 UTC
Requires
- php: ^7.1|^8.0
- ext-json: *
- fm-labs/php-uri: ^0.6
- psr/container: ^1.0
- psr/http-factory: ^1.0
- psr/http-message: ^1.0
- psr/http-server-handler: ^1.0
- psr/http-server-middleware: ^1.0
Requires (Dev)
- php-pm/php-pm: ^2.0
- phpunit/phpunit: ^7|^8|^9
- squizlabs/php_codesniffer: ^3.5
This package is auto-updated.
Last update: 2024-09-29 05:22:13 UTC
README
PHP 微型框架
需求
- 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
: 被视为 RouteHandlerString
: 将作为响应体应用Null
: 降级处理。尚未实现Other
: 抛出异常
组件
HTTP 堆栈
Messages
(Request
/Response
) - 遵循 PSR-7,Handler
- 遵循 PSR-15Factory
- 遵循 PSR-17Server
- 使用HTTP Handlers
和HTTP 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: 上传文件支持