Skip to content

Commit

Permalink
Allow to configure the default locale explicitly
Browse files Browse the repository at this point in the history
Fixes #220
  • Loading branch information
liquorvicar authored and dbu committed Dec 8, 2015
1 parent ad15dc1 commit 86154bc
Show file tree
Hide file tree
Showing 6 changed files with 15 additions and 0 deletions.
2 changes: 2 additions & 0 deletions DependencyInjection/Configuration.php
Original file line number Diff line number Diff line change
Expand Up @@ -209,6 +209,7 @@ private function addOdmSection(ArrayNodeDefinition $node)
'locales' => true,
'locale' => true,
'locale_chooser' => true,
'default_locale' => true,
);
$documentManagers = array();
foreach ($v as $key => $value) {
Expand Down Expand Up @@ -237,6 +238,7 @@ private function addOdmSection(ArrayNodeDefinition $node)
->values(array('hardcoded', 'merge', 'replace'))
->defaultValue('hardcoded')
->end()
->scalarNode('default_locale')->end()
->arrayNode('namespaces')
->addDefaultsIfNotSet()
->children()
Expand Down
9 changes: 9 additions & 0 deletions DependencyInjection/DoctrinePHPCRExtension.php
Original file line number Diff line number Diff line change
Expand Up @@ -387,6 +387,15 @@ private function loadOdmLocales(array $config, ContainerBuilder $container)

$container->setParameter('doctrine_phpcr.odm.locales', $config['locales']);
$container->setParameter('doctrine_phpcr.odm.allowed_locales', array_keys($config['locales']));
if (isset($config['default_locale']) && !is_null($config['default_locale'])) {
$defaultLocale = $config['default_locale'];
if (!isset($config['locales'][$defaultLocale])) {
throw new InvalidConfigurationException('Default locale must be listed in locale list');
}
} else {
$defaultLocale = key($config['locales']);
}
$container->setParameter('doctrine_phpcr.odm.default_locale', $defaultLocale);
$container->setParameter('doctrine_phpcr.odm.default_locale', key($config['locales']));
$container->setParameter('doctrine_phpcr.odm.locale_fallback', $config['locale_fallback'] == 'hardcoded' ? null : $config['locale_fallback']);

Expand Down
1 change: 1 addition & 0 deletions Tests/Resources/Fixtures/config/single.php
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,7 @@
'fr' => array('en', 'de'),
),
'locale_fallback' => 'hardcoded',
'default_locale' => 'fr',
),
'jackrabbit_jar' => '/path/to/jackrabbit.jar',
'dump_max_line_length' => 20,
Expand Down
1 change: 1 addition & 0 deletions Tests/Resources/Fixtures/config/single.xml
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,7 @@
<fallback>en</fallback>
<fallback>de</fallback>
</locale>
<default_locale>fr</default_locale>
</odm>

</config>
Expand Down
1 change: 1 addition & 0 deletions Tests/Resources/Fixtures/config/single.yml
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,7 @@ doctrine_phpcr:
de: [en, fr]
fr: [en, de]
locale_fallback: hardcoded
default_locale: fr

jackrabbit_jar: /path/to/jackrabbit.jar
dump_max_line_length: 20
Expand Down
1 change: 1 addition & 0 deletions Tests/Unit/DependencyInjection/ConfigurationTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -85,6 +85,7 @@ public function configurations()
'fr' => array('en', 'de'),
),
'locale_fallback' => 'hardcoded',
'default_locale' => 'fr',
'default_document_manager' => 'default',
'document_managers' => array(
'default' => array(
Expand Down

0 comments on commit 86154bc

Please sign in to comment.