Skip to content

Commit

Permalink
Merge pull request #9 from cristiangsp/master
Browse files Browse the repository at this point in the history
Adding the ability to configure the naming strategy
  • Loading branch information
Spea committed Nov 13, 2014
2 parents 5ad4b4e + 2141d8c commit d1c187d
Show file tree
Hide file tree
Showing 2 changed files with 30 additions and 0 deletions.
16 changes: 16 additions & 0 deletions docs/configuration_reference.md
Expand Up @@ -61,3 +61,19 @@ return array(
// ...
);
```

Selecting naming strategy
-------------------------------
The default naming strategy is camel case. But you can switch to the identical
naming strategy through configuration.

```php
return array(
// ...
'jms_serializer' => array(
'naming_strategy' => 'identical'
), ),
),
// ...
);
```
14 changes: 14 additions & 0 deletions src/JMSSerializerModule/Module.php
Expand Up @@ -19,6 +19,7 @@
use JMS\Serializer\JsonSerializationVisitor;
use JMS\Serializer\Metadata\Driver\AnnotationDriver;
use JMS\Serializer\Naming\CamelCaseNamingStrategy;
use JMS\Serializer\Naming\IdenticalPropertyNamingStrategy;
use JMS\Serializer\Naming\SerializedNameAnnotationStrategy;
use JMS\Serializer\XmlDeserializationVisitor;
use JMS\Serializer\XmlSerializationVisitor;
Expand Down Expand Up @@ -155,7 +156,20 @@ public function getServiceConfig()

return new CamelCaseNamingStrategy($options->getSeparator(), $options->getLowercase());
},
'jms_serializer.identical_naming_strategy' => function (ServiceManager $sm) {
return new IdenticalPropertyNamingStrategy();
},
'jms_serializer.serialized_name_annotation_strategy' => function (ServiceManager $sm) {

$options = $sm->get('Configuration');

if (isset($options['jms_serializer']['naming_strategy'])) {

if ($options['jms_serializer']['naming_strategy'] == 'identical') {
return new SerializedNameAnnotationStrategy($sm->get('jms_serializer.identical_naming_strategy'));
}
}

return new SerializedNameAnnotationStrategy($sm->get('jms_serializer.camel_case_naming_strategy'));
},
'jms_serializer.naming_strategy' => 'JMSSerializerModule\Service\NamingStrategyFactory',
Expand Down

0 comments on commit d1c187d

Please sign in to comment.