chimera / serialization-jms
为 jms/serializer 提供的适配器,允许您创建要处理的消息
Requires
- php: ^7.4 || ^8.0
- chimera/foundation: ^0.4
- jms/serializer: ^3.11
Requires (Dev)
- doctrine/annotations: ^1.11
- 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
Provides
- 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/actions-checkout-4.x
- dev-renovate/lcobucci-coding-standard-11.x
- dev-renovate/lock-file-maintenance
This package is auto-updated.
Last update: 2024-09-20 15:46:14 UTC
README
术语 Chimera(/kɪˈmɪərə/ 或 /kaɪˈmɪərə/)用来描述任何由各种动物的部件组成的神话或虚构动物,或者描述任何由非常不同的部件组成的,或者被认为非常富有想象力、不可信或令人眼花缭乱的东西。
PHP 社区中有许多令人惊叹的库,随着 PSR 的创建和采用,我们不一定需要依赖完整的栈框架来创建复杂且设计良好的软件。选择要使用的组件并将它们组合在一起有时可能有点挑战。
这套包的目标是使这一过程变得更简单(而不牺牲质量),让您能够专注于软件的行为。
此包为 jms/serializer
提供了一个适配器,允许我们将其用作 MessageCreator
- 负责将用户输入转换为要处理的消息。
安装
包可在 Packagist 上找到,您可以使用 Composer 进行安装。
composer require chimera/serialization-jms
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
用法
这是您如何将 ArrayTransformer
作为 MessageCreator
使用的方法
<?php declare(strict_types=1); namespace MyApp; use Chimera\ExecuteQuery; use Chimera\MessageCreator\InputExtractor\AppendGeneratedIdentifier; use Chimera\MessageCreator\InputExtractor\UseInputData; use Chimera\MessageCreator\JmsSerializer\ArrayTransformer; use JMS\Serializer\SerializerBuilder; // We instantiate it passing a valid JMS serialiser $messageCreator = new ArrayTransformer( SerializerBuilder::create()->build(), new AppendGeneratedIdentifier(new UseInputData()) ); // Then use it on the actions $action = new ExecuteQuery($queryBus, $messageCreator, MyQuery::class); // considering that $queryBus is a valid instance of `ServiceBus` $result = $action->fetch($input); // considering that $input is a valid instance of `Input` var_dump($result);
许可协议
MIT,见 LICENSE。