teamneusta / jms-serializer-extension-bundle
扩展JMS Serializer Bundle,以便在忽略命名空间前缀的情况下加载序列化器配置
2.0.0
2024-05-15 14:09 UTC
Requires
- php: ~8.1.0 || ~8.2.0 || ~8.3.0
- jms/serializer-bundle: ^4.2 || ^5.4
Requires (Dev)
- ergebnis/composer-normalize: ^2.42
- friendsofphp/php-cs-fixer: ^3.11
- jangregor/phpstan-prophecy: ^1.0
- matthiasnoback/symfony-dependency-injection-test: ^5.1
- nyholm/symfony-bundle-test: ^3.0
- phpspec/prophecy-phpunit: ^2.0
- phpstan/extension-installer: ^1.1
- phpstan/phpstan: ^1.9
- phpstan/phpstan-symfony: ^1.2
- phpunit/phpunit: ^9.5
- qossmic/deptrac-shim: ^0.24 || ^1.0
- symfony/filesystem: ^5.4 || ^6.2 || ^7.0
- symfony/phpunit-bridge: ^5.4 || ^6.2 || ^7.0
- symfony/test-pack: ^1.0
- symfony/yaml: ^5.4 || ^6.2 || ^7.0
README
JMS Serializer Bundle允许配置多个目录以提供序列化器配置文件。这些目录使用PHP类命名空间进行配置。如果您旨在为您的包的类提供配置文件,并且应用程序打算覆盖其中一些文件,可能会出现命名空间冲突。此包简化了配置目录以提供无命名空间前缀的通配符配置的过程。
安装
-
要求包
composer require teamneusta/jms-serializer-extension-bundle
-
启用包
将Bundle添加到您的
config/bundles.php
\Neusta\JmsSerializerExtensionBundle\NeustaJmsSerializerExtensionBundle::class => ['all' => true],
配置
以下配置片段说明了此包的使用。配置键my_bundle和app的命名空间前缀配置为忽略。配置的目录可以包含任何所需的序列化器配置;PHP类命名空间不予考虑。配置键another_bundle提供JMS Serializer Bundle的CompanyThingCoolBundle包的默认配置。
jms_serializer: metadata: directories: my_bundle: path: '@MyBundle/../config/serializer' namespace_prefix: 'my_bundle' app: path: '%kernel.project_dir%/config/serializer' namespace_prefix: 'app' another_bundle: namespace_prefix: "Company\\Thing\\CoolBundle" path: "@CompanyThingCoolBundle/../config/serializer" neusta_jms_serializer_extension: non_prefixed_namespaces: my_bundle: ~ app: ~
覆盖加载优先级
可以为每个命名空间提供一个priority
。如果没有提供优先级,则假设为0
。当找到多个类的配置文件时,使用优先级最高的文件。
例如,考虑以下配置。如果给定类的配置文件在my_bundle
和another_bundle
中都找到,则使用my_bundle
中的配置,因为它具有更高的优先级。
jms_serializer: metadata: directories: my_bundle: path: '@MyBundle/../config/serializer' namespace_prefix: 'my_bundle' another_bundle: namespace_prefix: "Company\\Thing\\CoolBundle" path: "@CompanyThingCoolBundle/../config/serializer" neusta_jms_serializer_extension: non_prefixed_namespaces: my_bundle: priority: 10 another_bundle: ~
贡献
欢迎您为任何错误、功能请求或其他想法提出问题。
请在创建大型pull请求之前创建一个问题。
本地开发
要在本地机器上进行开发,需要供应商依赖项。
bin/composer install
我们使用composer脚本来运行我们的主要质量工具。它们可以通过bin/composer
文件执行。
bin/composer cs:fix bin/composer phpstan
对于测试,有一个不同的脚本,它包括数据库设置。
bin/run-tests