chimera / mapping
有用的注解来配置您的软件的应用层
Requires
- php: ^7.4 || ^8.0
- doctrine/annotations: ^1.12
Requires (Dev)
- infection/infection: ^0.21
- lcobucci/coding-standard: ^6.0
- phpstan/extension-installer: ^1.1
- phpstan/phpstan: ^0.12
- phpstan/phpstan-deprecation-rules: ^0.12
- phpstan/phpstan-phpunit: ^0.12
- phpstan/phpstan-strict-rules: ^0.12
- phpunit/phpunit: ^9.5
- 1.0.x-dev
- 0.4.x-dev
- 0.4.0
- 0.3.0
- 0.2.0
- 0.1.0
- dev-renovate/phpstan-packages
- dev-renovate/test-packages
- dev-renovate/all-minor-patch
- dev-renovate/codecov-codecov-action-4.x
- dev-renovate/actions-cache-4.x
- dev-renovate/major-test-packages
- dev-renovate/lcobucci-coding-standard-11.x
- dev-renovate/lock-file-maintenance
This package is auto-updated.
Last update: 2024-09-20 14:26:33 UTC
README
术语Chimera(/kɪˈmɪərə/ 或 /kaɪˈmɪərə/)用来描述任何由多种动物部分组成的神话或虚构动物,或者描述由非常不同部分组成的事物,或被视为极具想象力、难以置信或迷人的事物。
PHP社区中有许多许多令人惊叹的库,随着PSR的创建和采用,我们不必一定依赖全栈框架来创建复杂且设计良好的软件。选择要使用的组件并将它们组合起来有时可能会有些挑战。
这组包的目标是使其更容易做到这一点(而不牺牲质量),让您能够专注于软件的行为。
此包提供了一组注解,用于配置您的命令/查询处理器、HTTP中间件和命令/查询总线中间件。
重要:这些注解仅在与读取它们的包一起使用时才会使用,例如 chimera/di-symfony
。
安装
该包可在 Packagist 上找到,您可以使用 Composer 进行安装。
composer require chimera/mapping
PHP配置
为了确保我们处理的是正确数据,我们使用assert()
,这是PHP中的一个非常有趣的功能,但并不常用。关于assert()
的好处是,我们可以在生产模式下禁用它,以免出现无用的语句。
因此,对于生产模式,我们建议您在php.ini
中将zend.assertions
设置为-1
。对于开发,您应保持zend.assertions
为1
,并将assert.exception
设置为1
,这样PHP在出错时将抛出AssertionError
。
有关更多信息,请参阅文档:https://secure.php.net/manual/en/function.assert.php
用法
这些是与如何将服务映射到命令/查询总线相关的注解
Chimera\Mapping\ServiceBus\CommandHandler
:将类公开为命令处理器Chimera\Mapping\ServiceBus\QueryHandler
:将类公开为查询处理器Chimera\Mapping\ServiceBus\Middleware
:将类公开为命令/查询中间件
以下是与如何将服务映射到PSR-15应用程序相关的注解
Chimera\Mapping\Routing\CreateAndFetchEndpoint
:添加一个端点,该端点将执行创建资源的命令,然后执行查询以获取其状态Chimera\Mapping\Routing\CreateEndpoint
:添加一个端点,该端点将执行创建资源的命令Chimera\Mapping\Routing\ExecuteAndFetchEndpoint
:添加一个端点,该端点将执行修改资源的命令,然后执行查询以获取其状态Chimera\Mapping\Routing\ExecuteEndpoint
:添加一个端点,该端点将执行修改/删除资源的命令Chimera\Mapping\Routing\FetchEndpoint
:添加一个端点,该端点将执行查询Chimera.GetMapping\Routing\Middleware
:将类暴露为PSR-15 HTTP中间件
注解的目的是简化服务的映射,从依赖注入容器文件中移除复杂的标签。它们应该基本上这样使用
<?php declare(strict_types=1); namespace MyApi\Creation; use Chimera\Mapping as Chimera; /** * @Chimera\Routing\CreateEndpoint(path="/books", command=AddToCollection::class, name="book.create", redirectTo="book.fetch_one") * @Chimera\ServiceBus\CommandHandler(handles=AddToCollection::class) */ final class AddToCollectionHandler { // ... }
许可证
MIT,请参阅LICENSE。