8000 Completed the Configuration class and refactored the extension to use it · umpirski/symfony@477109f · GitHub
[go: up one dir, main page]

Skip to content

Commit 477109f

Browse files
committed
Completed the Configuration class and refactored the extension to use it
1 parent 652bca1 commit 477109f

File tree

2 files changed

+65
-298
lines changed

2 files changed

+65
-298
lines changed

src/Symfony/Bundle/DoctrineBundle/DependencyInjection/Configuration.php

Lines changed: 19 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ private function addDbalSection(NodeBuilder $node)
6161
return $v;
6262
})
6363
->end()
64-
->scalarNode('default_connection')->isRequired()->cannotBeEmpty()->end()
64+
->scalarNode('default_connection')->cannotBeEmpty()->defaultValue('default')->end()
6565
->fixXmlConfig('type')
6666
->arrayNode('types')
6767
->useAttributeAsKey('name')
@@ -90,14 +90,17 @@ private function getDbalConnectionsNode()
9090
->scalarNode('user')->defaultValue('root')->end()
9191
->scalarNode('password')->defaultNull()->end()
9292
->scalarNode('driver')->defaultValue('pdo_mysql')->end()
93+
->fixXmlConfig('driver_class', 'driverClass')
9394
->scalarNode('driver_class')->end()
94-
->arrayNode('options')
95+
->fixXmlConfig('options', 'driverOptions')
96+
->arrayNode('driverOptions')
9597
->useAttributeAsKey('key')
9698
->prototype('scalar')->end()
9799
->end()
98100
->scalarNode('path')->end()
99101
->booleanNode('memory')->end()
100102
->scalarNode('unix_socket')->end()
103+
->fixXmlConfig('wrapper_class', 'wrapperClass')
101104
->scalarNode('wrapper_class')->end()
102105
->scalarNode('platform_service')->end()
103106
->scalarNode('charset')->defaultValue('UTF-8')->end()
@@ -116,23 +119,24 @@ private function addOrmSection(NodeBuilder $node)
116119
->ifTrue(function($v){ return is_array($v) && !array_key_exists('entity_managers', $v) && !array_key_exists('entity_manager', $v); })
117120
->then(function($v) {
118121
$entityManager = array ();
119-
$keys = array ('result_cache_driver', 'metadata_cache_driver', 'query_cache_driver', 'mappings');
122+
$keys = array ('result_cache_driver', 'result-cache-driver', 'metadata_cache_driver', 'metadata-cache-driver', 'query_cache_driver', 'query-cache-driver', 'mappings', 'mapping', 'connection');
120123
foreach ($keys as $key) {
121124
if (array_key_exists($key, $v)) {
122-
$entityManagers[$key] = $v[$key];
125+
$entityManager[$key] = $v[$key];
123126
unset($v[$key]);
124127
}
125128
}
126-
if (!empty ($entityManager)) {
127-
$defaultEntityManager = isset($v['default_entity_manager']) ? (string) $v['default_entity_manager'] : 'default';
128-
$v['entity_managers'] = array ($defaultEntityManager => $entityManager);
129-
$v['default_entity_manager'] = $defaultEntityManager;
130-
}
129+
$defaultEntityManager = isset($v['default_entity_manager']) ? (string) $v['default_entity_manager'] : 'default';
130+
$v['entity_managers'] = array ($defaultEntityManager => $entityManager);
131+
$v['default_entity_manager'] = $defaultEntityManager;
131132
return $v;
132133
})
133134
->end()
134-
->scalarNode('default_entity_manager')->isRequired()->cannotBeEmpty()->end()
135+
->scalarNode('default_entity_manager')->cannotBeEmpty()->defaultValue('default')->end()
136+
->scalarNode('default_connection')->cannotBeEmpty()->defaultValue('default')->end()
135137
->booleanNode('auto_generate_proxy_classes')->defaultFalse()->end()
138+
->scalarNode('proxy_dir')->defaultValue('%kernel.cache_dir%/doctrine/orm/Proxies')->end()
139+
->scalarNode('proxy_namespace')->defaultValue('Proxies')->end()
136140
->fixXmlConfig('entity_manager')
137141
->builder($this->getOrmEntityManagersNode())
138142
->end()
@@ -150,18 +154,16 @@ private function getOrmEntityManagersNode()
150154
->builder($this->getOrmCacheDriverNode('metadata_cache_driver'))
151155
->builder($this->getOrmCacheDriverNode('result_cache_driver'))
152156
->scalarNode('connection')->end()
153-
->scalarNode('proxy_dir')->defaultValue('%kernel.cache_dir%/doctrine/orm/Proxies')->end()
154-
->scalarNode('proxy_namespace')->defaultValue('Proxies')->end()
155-
->scalarNode('class_metadata_factory_name')->end()
157+
->scalarNode('class_metadata_factory_name')->defaultValue('%doctrine.orm.class_metadata_factory_name%')->end()
156158
->fixXmlConfig('mapping')
157159
->arrayNode('mappings')
158160
->useAttributeAsKey('name')
159-
->treatNullLike(array ())
160161
->prototype('array')
161162
->beforeNormalization()
162163
->ifString()
163164
->then(function($v) { return array ('type' => $v); })
164165
->end()
166+
->treatNullLike(array ())
165167
->scalarNode('type')->end()
166168
->scalarNode('dir')->end()
167169
->scalarNode('alias')->end()
@@ -180,14 +182,16 @@ private function getOrmCacheDriverNode($name)
180182
{
181183
$node = new NodeBuilder($name, 'array');
182184
$node
185+
->addDefaultsIfNotSet()
183186
->beforeNormalization()
184187
->ifString()
185188
->then(function($v) { return array ('type' => $v); })
186189
->end()
187-
->scalarNode('type')->defaultValue('array')->end()
190+
->scalarNode('type')->defaultValue('array')->isRequired()->end()
188191
->scalarNode('host')->end()
189192
->scalarNode('port')->end()
190193
->scalarNode('instance_class')->end()
194+
->scalarNode('class')->end()
191195
;
192196

193197
return $node;

0 commit comments

Comments
 (0)
0