teknoo / east-foundation
East Foundation 是一个通用的包,用于在任何支持 PSR-11、PSR-15 或 Symfony 4+ 的框架中实现 #east 哲学(http://blog.est.voyage/phpTour2015/)。
Requires
- php: ^8.2
- ext-json: *
- php-di/php-di: ^7.0.6
- psr/clock: ^1
- psr/container: ^2.0
- psr/http-factory: ^1.0.2
- psr/http-message: ^2
- teknoo/immutable: ^3.0.17
- teknoo/recipe: ^5.1
- teknoo/states: ^6.3
Requires (Dev)
- ext-pcntl: *
- behat/behat: ^3.14
- icanhazstring/composer-unused: ^0.8.11
- laminas/laminas-diactoros: ^3.3
- nikic/php-parser: ^4.18||^5
- phpstan/extension-installer: ^1.3.1
- phpstan/phpstan: ^1.10.64
- phpunit/phpunit: ^10.5.10||^11
- psr/http-server-middleware: ^1.0.2
- roave/security-advisories: dev-latest
- squizlabs/php_codesniffer: ^3.8
- symfony/config: ^6.3||^7.0
- symfony/console: ^6.3||^7.0
- symfony/dependency-injection: ^6.3||^7.0
- symfony/framework-bundle: ^6.3||^7.0
- symfony/http-foundation: ^6.3||^7.0
- symfony/http-kernel: ^6.3||^7.0
- symfony/messenger: ^6.3||^7.0
- symfony/property-access: ^6.3||^7.0
- symfony/psr-http-message-bridge: ^2.3.1||^6.4||^7.0
- symfony/routing: ^6.3||^7.0
- symfony/security-core: ^6.3||^7.0
- symfony/serializer: ^6.3||^7.0
- symfony/yaml: ^6.3||^7.0
- twig/twig: ^3.8
- dev-master
- 7.7.1
- 7.7.0
- 7.6.4
- 7.6.3
- 7.6.2
- 7.6.1
- 7.6.0
- 7.5.2
- 7.5.1
- 7.5.0
- 7.4.0
- 7.3.6
- 7.3.5
- 7.3.4
- 7.3.3
- 7.3.2
- 7.3.1
- 7.3.0
- 7.2.0
- 7.1.0
- 7.0.0
- 7.0.0-beta1
- 6.2.12
- 6.2.11
- 6.2.10
- 6.2.9
- 6.2.8
- 6.2.7
- 6.2.6
- 6.2.5
- 6.2.4
- 6.2.3
- 6.2.2
- 6.2.1
- 6.2.0
- 6.1.0
- 6.0.7
- 6.0.6
- 6.0.5
- 6.0.4
- 6.0.3
- 6.0.2
- 6.0.1
- 6.0.0
- 5.3.11
- 5.3.10
- 5.3.9
- 5.3.7
- 5.3.6
- 5.3.5
- 5.3.4
- 5.3.3
- 5.3.2
- 5.3.1
- 5.3.0
- 5.2.0
- 5.1.3
- 5.1.2
- 5.1.1
- 5.1.0
- 5.0.3
- 5.0.2
- 5.0.1
- 5.0.0
- 4.1.2
- 4.1.1
- 4.1.0
- 4.0.3
- 4.0.2
- 4.0.1
- 3.3.3
- 3.3.2
- 3.3.1
- 3.3.0
- 3.2.5
- 3.2.4
- 3.2.3
- 3.2.2
- 3.2.1
- 3.2.0
- 3.2.0-beta5
- 3.2.0-beta4
- 3.2.0-beta3
- 3.2.0-beta2
- 3.2.0-beta1
- 3.1.3
- 3.1.2
- 3.1.1
- 3.1.0
- 3.0.4
- 3.0.3
- 3.0.2
- 3.0.1
- 3.0.0
- 3.0.0-beta2
- 3.0.0-beta1
- 2.1.6
- 2.1.5
- 2.1.4
- 2.1.3
- 2.1.2
- 2.1.1
- 2.1.0
- 2.1.0-beta5
- 2.1.0-beta4
- 2.1.0-beta3
- 2.1.0-beta2
- 2.1.0-beta1
- 2.0.2
- 2.0.1
- 2.0.0
- 2.0.0-beta9
- 2.0.0-beta8
- 2.0.0-beta7
- 2.0.0-beta6
- 2.0.0-beta5
- 2.0.0-beta4
- 2.0.0-beta3
- 2.0.0-beta1
- 1.0.2
- 1.0.1
- 1.0.0
- 0.0.11
- 0.0.10
- 0.0.9
- 0.0.8
- 0.0.8-beta3
- 0.0.8-beta2
- 0.0.8-beta1
- 0.0.7
- 0.0.7-beta6
- 0.0.7-beta5
- 0.0.7-beta4
- 0.0.7-beta3
- 0.0.7-beta2
- 0.0.7-beta1
- 0.0.6
- 0.0.5
- 0.0.5-beta10
- 0.0.5-beta9
- 0.0.5-beta8
- 0.0.5-beta7
- 0.0.5-beta6
- 0.0.5-beta5
- 0.0.5-beta4
- 0.0.5-beta3
- 0.0.5-beta2
- 0.0.5-beta1
- 0.0.4
- 0.0.4-beta2
- 0.0.4-beta1
- 0.0.4-alpha13
- 0.0.4-alpha12
- 0.0.4-alpha11
- 0.0.4-alpha10
- 0.0.4-alpha9
- 0.0.4-alpha8
- 0.0.4-alpha7
- 0.0.4-alpha6
- 0.0.4-alpha5
- 0.0.4-alpha4
- 0.0.4-alpha3
- 0.0.4-alpha2
- 0.0.4-alpha1
- 0.0.3
- 0.0.2
- 0.0.1
- 0.0.1-alpha3
- 0.0.1-alpha2
- 0.0.1-alpha1
This package is auto-updated.
Last update: 2024-09-22 10:13:11 UTC
README
East Foundation 是一个通用的包,用于在任何支持 PSR 11
、PSR 7
或与 Symfony 6.4+ 兼容的框架中实现 #east 哲学:所有公共方法的对象必须返回 $this
或 $this
的新实例。
此捆绑包使用 PSR 7
请求和响应,并自动进行从 Symfony 的请求和响应的转换。因此,您的控制器和服务可以独立于 Symfony。此捆绑包内部重用 Symfony 的组件来管理路由和查找要调用的控制器。它也设计成可以与其它框架一起使用。
它也可以用于工作进程
- 定时器触发的异步任务(感谢 pcntl)。
- 设置工作进程健康检查。
- 提供非阻塞睡眠方法。
此库基于 Recipe 库构建,并重新定义了一些接口,以更全面地与 HTTP 上下文兼容。
- 中间件是动作,但必须实现特定接口。
- HTTP 工作流定义在一个可扩展的 Recipe 中。
- Chef 成为了管理者,在请求被接受时执行工作流。
- 适用于任何
PSR 11
框架,同时提供了 Symfony 实现。 - 支持
PSR 15
处理器和中间件 - 支持
PSR 20
并提供了一个 PSR-20 实现
完整的文档可在 documentation/README.md 中找到
支持此项目
此项目是免费的,并将保持免费。它完全由 EIRL 的活动支持。如果您喜欢它并帮助我维护和改进它,请毫不犹豫地在我Patreon 或 Github 上支持我。
谢谢 :) Richard。
致谢
EIRL Richard Déloge - https://deloge.io - 首席开发者。SASU Teknoo Software - https://teknoo.software
关于 Teknoo Software
Teknoo Software 是一家 PHP 软件 publisher,由 Richard Déloge 创建,作为 EIRL Richard Déloge 的一部分。Teknoo Software 的目标:为我们合作伙伴和社区提供一套高质量的服务或软件,分享知识和技能。
许可协议
East Foundation 采用 MIT 许可协议 - 请参阅许可证文件夹以获取详细信息。
安装 & 要求
要安装 遵循这些说明。
此库需要
* PHP 8.1+
* A PHP autoloader (Composer is recommended)
* Teknoo/Immutable.
* Teknoo/States.
* Teknoo/Recipe.
* Optional: Symfony 6.4+
来自 Teknoo East Foundation 7.x 的新闻
此库需要 PHP 8.1 或更高版本,并且仅与 Symfony 6.3 或更高版本兼容
- PHP-DI 7 或更高版本
- 使用
DatesService
支持PSR-20
- 支持
PSR-15
,并新增Recipe Bowl
类型FiberHandlerBowl
(以及FiberMiddlewareBowl
)支持将PSR 15
请求处理器添加到配方中。MiddlewareBowl
(以及FiberMiddlewareBowl
)支持将PSR 15
中间件添加到配方中。
- 添加`Teknoo\East\Foundation\Normalizer\Object\GroupsTrait`
- 添加一个基于定时器的伪非阻塞Sleep服务
- 定时器触发的异步任务(感谢 pcntl)。
- 设置工作进程健康检查。
- 提供非阻塞睡眠方法。
来自Teknoo East Foundation 6.x的新闻
此库需要PHP 8.1或更高版本,并且仅与Symfony 6.1或更高版本兼容
- 在
SessionMiddleware
、处理器、路由器和会话组件中,常量是最终的。 - 对于不可变对象(
Processor
和路由器的结果)使用只读 - 在主
Cookbook
和RecipeEndPoint
中支持Fibers。RecipeEndPoint
也接受bowl和FiberRecipeBowl
。 - 移除对PHP 8.0和Symfony 5.4及以下版本的支持。
来自Teknoo East Foundation 5.x的新闻
此库需要PHP 8.0或更高版本,并且仅与Symfony 5.2或更高版本兼容
- 迁移到PHP 8.0+
- 移除对Symfony 4.4的支持,仅支持5.2+
- 构造函数属性提升
- 非捕获异常处理
- 切换到str_contains
- Messenger的执行器使用一个空的管理器并克隆它
- 添加方法以配置客户端在必须发送一个缺失响应时的行为(静默或抛出异常)
- 添加
ClientInterface::mustSendAResponse
- 添加
ClientInterface::sendAResponseIsOptional
- 如果Router返回了一个兼容的可调用者,处理器将在非静默模式下进行配置
- 可以通过在DI中将
teknoo.east.client.must_send_response
设置为false来禁用此行为 - 将ClientInterface从
Teknoo\East\Foundation\Http
移动到Teknoo\East\Foundation\Client
- 添加
Teknoo\East\Foundation\Client\ResultInterface
ClientInterface
也接受ResultInterface而不是PSR的消息- 所有客户端实现都采用新的客户端接口
- Symfony客户端实现支持
ResultInterface
和JsonSerializable
响应
来自Teknoo East Foundation 4.x的新闻
此库需要PHP 7.4或更高版本,并且仅与Symfony 4.4或更高版本兼容
- 切换到States 4.1.9和PHPStan 0.12.79
- 准备库以在非HTTP环境中使用
- 使用MessageInterface而不是ServerRequestInterface
- Cookbook和ProcessorCookbook使用BaseCookbookTrait
- 添加仅实现
PSR 11
的消息 - 添加MessageFactory
- 更新客户端接口以使用MessageInterface而不是RequestInterface
- 添加针对Symfony Messenger的专用配方执行器
- 添加针对Symfony Messenger的专用客户端
- 删除一些公共服务
来自Teknoo East Foundation 3.x的新闻
此库需要PHP 7.4或更高版本,并且仅与Symfony 4.4或更高版本兼容
- 移除Symfony Template组件(集成已弃用至symfony)
- 创建EngineInterface以允许创建适配任何模板引擎的适配器
- 创建ResultInterface以允许异步模板渲染以进行回调流
- 创建实现EngineInterface和ResultInterface的Twig Engine
- 移除'east.controller.service'标签(未使用)
- 添加east.endpoint.template以注入Twig引擎适配器
- 修复服务定义
- 完成测试
- 将src中的通用文件夹迁移到src的根目录并移除旧版本支持
来自Teknoo East Foundation 2.x的新闻
此库需要PHP 7.4或更高版本,并且仅与Symfony 4.4或更高版本兼容
- PHP 7.4是最小要求
- 切换到类型属性
- 删除一些无用的PHP DockBlocks
- 对于整数索引数组,用"..."运算符替换array_merge
- 支持zendframework/zend-diactoros 2.2
- 限制为Symfony 4.4或5.+并删除一些弃用项
- 将
Teknoo\East\Foundation\Manager\ManagerInterface
和Teknoo\East\Foundation\Http\ClientInterface
设置为Symfony的服务定义中的合成服务,以避免与Symfony 4.4的编译错误 - 在 Symfony 的服务定义中设置
Symfony\Bridge\PsrHttpMessage\Factory\DiactorosFactory
以避免与 Symfony 4.4 版本的编译错误 - 在 QA 工具中启用 PHPStan 并禁用 PHPMD
贡献 :)
欢迎您为该项目做出贡献。 在 Github 上进行分支操作