定制 teamneusta/jms-serializer-extension-bundle 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

teamneusta/jms-serializer-extension-bundle

Composer 安装命令:

composer require teamneusta/jms-serializer-extension-bundle

包简介

Extends the JMS Serializer Bundle to allow loading serializer configuration while ignoring the namespace prefixes

README 文档

README

The JMS Serializer Bundle enables the configuration of various directories to supply serializer configuration files. These directories are configured with a PHP class namespace. If you aim to offer configuration files for your bundle's classes and the application intends to override some of them, namespace conflicts may arise. This bundle facilitates the configuration of directories to supply wildcard configurations without a namespace prefix.

Installation

  1. Require the bundle

    composer require teamneusta/jms-serializer-extension-bundle
  2. Enable the bundle

    Add the Bundle to your config/bundles.php:

    \Neusta\JmsSerializerExtensionBundle\NeustaJmsSerializerExtensionBundle::class => ['all' => true],

Configuration

The following configuration snippet illustrates the usage of this bundle. The configuration keys my_bundle and app have their namespace prefixes configured to be ignored. The configured directories can contain any serializer configuration one desires; PHP class namespaces are disregarded. The configuration key another_bundle provides default configuration from the JMS Serializer Bundle for the CompanyThingCoolBundle Bundle.

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: ~

Overriding load priority

It is possible to provide a priority per namespace. If no priority is given, 0 is assumed. When multiple configuration files for a class are found, the one with the highest priority is used.

For example, consider the following configuration. If a configuration file for a given class is found in both my_bundle and another_bundle, the configuration from my_bundle is used because it has a higher priority.

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: ~

Contribution

Feel free to open issues for any bug, feature request, or other ideas.

Please remember to create an issue before creating large pull requests.

Local Development

To develop on local machine, the vendor dependencies are required.

bin/composer install

We use composer scripts for our main quality tools. They can be executed via the bin/composer file as well.

bin/composer cs:fix
bin/composer phpstan

For the tests there is a different script, that includes a database setup.

bin/run-tests

teamneusta/jms-serializer-extension-bundle 适用场景与选型建议

teamneusta/jms-serializer-extension-bundle 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 756 次下载、GitHub Stars 达 0, 最近一次更新时间为 2024 年 05 月 14 日, 在 PHP 生态内属于活跃度较高的组件。

我们在过去多个企业项目中使用过 teamneusta/jms-serializer-extension-bundle 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。

围绕 teamneusta/jms-serializer-extension-bundle 我们能提供哪些服务?
定制开发 / 二次开发

基于 teamneusta/jms-serializer-extension-bundle 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

  • 总下载量: 756
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 10
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 4
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: GPL-3.0-or-later
  • 更新时间: 2024-05-14