PHPackages                             gam6itko/jms-serializer-config-converter - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Parsing &amp; Serialization](/categories/parsing)
4. /
5. gam6itko/jms-serializer-config-converter

ActiveLibrary[Parsing &amp; Serialization](/categories/parsing)

gam6itko/jms-serializer-config-converter
========================================

Convert jms-serialize metadata configuration to another format

v0.1.1(5y ago)336MITPHPCI failing

Since May 29Pushed 5y ago1 watchersCompare

[ Source](https://github.com/gam6itko/jms-serializer-config-converter)[ Packagist](https://packagist.org/packages/gam6itko/jms-serializer-config-converter)[ RSS](/packages/gam6itko-jms-serializer-config-converter/feed)WikiDiscussions master Synced yesterday

READMEChangelogDependencies (6)Versions (3)Used By (0)

JMS Serializer Config Converter (JSCC)
======================================

[](#jms-serializer-config-converter-jscc)

[![Build Status](https://camo.githubusercontent.com/985c1f71eb0b928fa5592e880420763371ad67ec20c404a62c47b774ce992da6/68747470733a2f2f7472617669732d63692e6f72672f67616d3669746b6f2f6a6d732d73657269616c697a65722d636f6e6669672d636f6e7665727465722e7376673f6272616e63683d6d6173746572)](https://travis-ci.org/gam6itko/jms-serializer-config-converter)[![Coverage Status](https://camo.githubusercontent.com/b23c324a2e50884a763e179bb621981ea125813dcc2c1b6268c99692abd6c8da/68747470733a2f2f636f766572616c6c732e696f2f7265706f732f6769746875622f67616d3669746b6f2f6a6d732d73657269616c697a65722d636f6e6669672d636f6e7665727465722f62616467652e7376673f6272616e63683d6d6173746572)](https://coveralls.io/github/gam6itko/jms-serializer-config-converter?branch=master)[![Maintainability](https://camo.githubusercontent.com/7677e6a402dec9a36e675afb1f791ea02e01f9804a1ebfe55074e7b21fa9548f/68747470733a2f2f6170692e636f6465636c696d6174652e636f6d2f76312f6261646765732f35336563393066343135343261303439356431622f6d61696e7461696e6162696c697479)](https://codeclimate.com/github/gam6itko/jms-serializer-config-converter/maintainability)[![Test Coverage](https://camo.githubusercontent.com/318b49977792a174b78ba9c1935328cf6fb4948e9362c9891cb42648f6d397f1/68747470733a2f2f6170692e636f6465636c696d6174652e636f6d2f76312f6261646765732f35336563393066343135343261303439356431622f746573745f636f766572616765)](https://codeclimate.com/github/gam6itko/jms-serializer-config-converter/test_coverage)

[![Latest Stable Version](https://camo.githubusercontent.com/37e6b937346325fa7159fcd08a3de888343a6a0f4ba74a6484f5bfe52e05a82a/68747470733a2f2f706f7365722e707567782e6f72672f67616d3669746b6f2f6a6d732d73657269616c697a65722d636f6e6669672d636f6e7665727465722f76)](//packagist.org/packages/gam6itko/jms-serializer-config-converter) [![Total Downloads](https://camo.githubusercontent.com/736a51d57cc08ce1a2b200bebb7ac1a8a8b4a28f87f10ad8a48911b9c7548ea5/68747470733a2f2f706f7365722e707567782e6f72672f67616d3669746b6f2f6a6d732d73657269616c697a65722d636f6e6669672d636f6e7665727465722f646f776e6c6f616473)](//packagist.org/packages/gam6itko/jms-serializer-config-converter) [![Latest Unstable Version](https://camo.githubusercontent.com/6d0c0d6707db84db7b03b553242b8154ee311ee5c94c324c2d2b3986a1ea1e16/68747470733a2f2f706f7365722e707567782e6f72672f67616d3669746b6f2f6a6d732d73657269616c697a65722d636f6e6669672d636f6e7665727465722f762f756e737461626c65)](//packagist.org/packages/gam6itko/jms-serializer-config-converter) [![License](https://camo.githubusercontent.com/c2e55e2725b0ed9a123966f4a24e29dadab7e07608365b3d2a3ef1f46cc8d016/68747470733a2f2f706f7365722e707567782e6f72672f67616d3669746b6f2f6a6d732d73657269616c697a65722d636f6e6669672d636f6e7665727465722f6c6963656e7365)](//packagist.org/packages/gam6itko/jms-serializer-config-converter)

Converts [jms-serializer](https://jmsyst.com/libs/serializer) metadata configuration to another format.

My small project with the serializer configuration in the annotations has grown to large sizes, and it is necessary to break it into several small ones. Also, I need to convert configurations of a serializer to files for different projects.

If you have the same problem then this library will help you.

Installation
------------

[](#installation)

```
composer require gam6itko/jms-serializer-config-converter --dev
```

Supports
--------

[](#supports)

fromtoyaml✓✓xml✓✓annotation✓⨉Usage
-----

[](#usage)

```
use Gam6itko\JSCC\Converter\Converter;
use Gam6itko\JSCC\Denormalizer\XmlDenormalizer;
use Gam6itko\JSCC\Denormalizer\YamlDenormalizer;
use Gam6itko\JSCC\Normalizer\AnnotationNormalizer;
use Gam6itko\JSCC\Normalizer\XmlNormalizer;
use Gam6itko\JSCC\Normalizer\YamlNormalizer;
use Metadata\Driver\FileLocator;

// normalizers
$xmlFileLocator = new FileLocator([
    'Namespace' => 'folder_with_xml'
]);
$xmlNormalizer = new XmlNormalizer($xmlFileLocator);

$yamlFileLocator = new FileLocator([
    'Namespace' => 'folder_with_yaml'
]);
$yamlNormalizer = new YamlNormalizer($yamlFileLocator);

$annotationNormalizer = new AnnotationNormalizer();

// denormalizers
$xmlDenormalizer = new XmlDenormalizer([
    'Namespace' => 'folder_where_to_save_xml'
]);

$yamlDenormalizer = new YamlDenormalizer([
    'Namespace' => 'folder_where_to_save_yaml'
]);

// show time
$converter = new Converter(
    [
        'annotation' => $annotationNormalizer,
        'annot' => $annotationNormalizer,
        'xml'   => $xmlNormalizer,
        'yaml'  => $yamlNormalizer,
        'yml'   => $yamlNormalizer,
        'foo'   => $yamlNormalizer,
    ],
    [
        'xml'  => $xmlDenormalizer,
        'yaml' => $yamlDenormalizer,
        'bar'  => $yamlDenormalizer,
    ]
);

$refClass = new \ReflectionClass('Namespace\ClassName');
// get annotation from `Namespace\ClassName` class and save it to `folder_where_to_save_xml`
$converter->convert($refClass, 'annotation', 'yaml');
// get yaml from `folder_with_xml` and save it to `folder_where_to_save_yaml`
$converter->convert($refClass, 'xml', 'yaml');
// get yaml from `folder_with_yaml` and save it to `folder_where_to_save_xml`
$converter->convert($refClass, 'yml', 'xml');
// get yaml from `folder_with_yaml` and save it to `folder_where_to_save_yaml`
$converter->convert($refClass, 'foo', 'bar');
// exception here !!!
$converter->convert($refClass, 'xml', 'annotation');
```

Usage in Symfony
----------------

[](#usage-in-symfony)

```
services:
    Gam6itko\JSCC\Normalizer\AnnotationNormalizer: ~

    Gam6itko\JSCC\Normalizer\XmlNormalizer:
        arguments: ['@jms_serializer.metadata.file_locator']

    Gam6itko\JSCC\Normalizer\YamlNormalizer:
        arguments: ['@jms_serializer.metadata.file_locator']

    Gam6itko\JSCC\Denormalizer\XmlDenormalizer:
        arguments:
            - 'Namespace': '%kernel.project_dir%/config/serializer/xml/Namespace'

    Gam6itko\JSCC\Denormalizer\YamlDenormalizer:
        arguments:
            - 'Namespace': '%kernel.project_dir%/config/serializer/yaml/Namespace'

    Gam6itko\JSCC\Converter\Converter:
        arguments:
            -   annotation: '@Gam6itko\JSCC\Normalizer\AnnotationNormalizer'
                annot: '@Gam6itko\JSCC\Normalizer\AnnotationNormalizer'
                xml: '@Gam6itko\JSCC\Normalizer\XmlNormalizer'
                yaml: '@Gam6itko\JSCC\Normalizer\YamlNormalizer'
                yml: '@Gam6itko\JSCC\Normalizer\YamlNormalizer'
                foo: '@Gam6itko\JSCC\Normalizer\YamlNormalizer'
            -   xml: '@Gam6itko\JSCC\Denormalizer\XmlDenormalizer'
                yaml: '@Gam6itko\JSCC\Denormalizer\YamlDenormalizer'
                bar: '@Gam6itko\JSCC\Denormalizer\YamlDenormalizer'

    Gam6itko\JSCC\Command\ConvertCommand:
        arguments: ['@Gam6itko\JSCC\Converter\Converter']
        tags:
            - {name: console.command}
```

```
php bin/console jms-serializer:config-convert Namespace annotation yaml -vvv
```

###  Health Score

23

—

LowBetter than 27% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity11

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity46

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~1 days

Total

2

Last Release

2173d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/3841197?v=4)[Alexander Strizhak](/maintainers/gam6itko)[@gam6itko](https://github.com/gam6itko)

---

Top Contributors

[![gam6itko](https://avatars.githubusercontent.com/u/3841197?v=4)](https://github.com/gam6itko "gam6itko (26 commits)")

---

Tags

configconvertjms-serializerphpserializerconverterjms

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/gam6itko-jms-serializer-config-converter/health.svg)

```
[![Health](https://phpackages.com/badges/gam6itko-jms-serializer-config-converter/health.svg)](https://phpackages.com/packages/gam6itko-jms-serializer-config-converter)
```

###  Alternatives

[goetas-webservices/xsd2php-runtime

Convert XSD (XML Schema) definitions into PHP classes

4910.9M36](/packages/goetas-webservices-xsd2php-runtime)[goetas-webservices/xsd2php

Convert XSD (XML Schema) definitions into PHP classes and JMS metadata

2411.6M37](/packages/goetas-webservices-xsd2php)[goetas/xsd2php-runtime

Convert XSD (XML Schema) definitions into PHP classes

493.3k](/packages/goetas-xsd2php-runtime)[jdesrosiers/silex-jms-serializer-provider

A silex service provider that integrates jms/serializer into silex

11126.3k2](/packages/jdesrosiers-silex-jms-serializer-provider)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
