Skip to content

Commit 03a1d6f

Browse files
committed
Merge pull request #310 from symfony-cmf/sf-28
Fix Symfony 2.8 deprecations
2 parents ac86d75 + 3899d90 commit 03a1d6f

File tree

3 files changed

+48
-24
lines changed

3 files changed

+48
-24
lines changed

Admin/RedirectRouteAdmin.php

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -36,13 +36,17 @@ protected function configureListFields(ListMapper $listMapper)
3636

3737
protected function configureFormFields(FormMapper $formMapper)
3838
{
39+
$isSf28 = method_exists('Symfony\Component\Form\AbstractType', 'getBlockPrefix');
40+
$textType = $isSf28 ? 'Symfony\Component\Form\Extension\Core\Type\TextType' : 'text';
41+
$doctrineTreeType = $isSf28 ? 'Sonata\DoctrinePHPCRAdminBundle\Form\Type\TreeModelType' : 'doctrine_phpcr_odm_tree';
42+
3943
$formMapper
4044
->with('form.group_general')
41-
->add('parent', 'doctrine_phpcr_odm_tree', array('choice_list' => array(), 'select_root_node' => true, 'root_node' => $this->routeRoot))
42-
->add('name', 'text')
43-
->add('routeName', 'text', array('required' => false))
44-
->add('uri', 'text', array('required' => false))
45-
->add('routeTarget', 'doctrine_phpcr_odm_tree', array('choice_list' => array(), 'required' => false, 'root_node' => $this->routeRoot))
45+
->add('parent', $doctrineTreeType, array('choice_list' => array(), 'select_root_node' => true, 'root_node' => $this->routeRoot))
46+
->add('name', $textType)
47+
->add('routeName', $textType, array('required' => false))
48+
->add('uri', $textType, array('required' => false))
49+
->add('routeTarget', $doctrineTreeType, array('choice_list' => array(), 'required' => false, 'root_node' => $this->routeRoot))
4650
->end()
4751
;
4852
}

Admin/RouteAdmin.php

Lines changed: 28 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -57,39 +57,43 @@ protected function configureListFields(ListMapper $listMapper)
5757

5858
protected function configureFormFields(FormMapper $formMapper)
5959
{
60+
$isSf28 = method_exists('Symfony\Component\Form\AbstractType', 'getBlockPrefix');
61+
$textType = $isSf28 ? 'Symfony\Component\Form\Extension\Core\Type\TextType' : 'text';
62+
$doctrineTreeType = $isSf28 ? 'Sonata\DoctrinePHPCRAdminBundle\Form\Type\TreeModelType' : 'doctrine_phpcr_odm_tree';
63+
$sonataImmutableType = $isSf28 ? 'Sonata\CoreBundle\Form\Type\ImmutableArrayType' : 'sonata_type_immutable_array';
64+
6065
$formMapper
6166
->with('form.group_general', array(
6267
'translation_domain' => 'CmfRoutingBundle',
6368
))
6469
->add(
6570
'parent',
66-
'doctrine_phpcr_odm_tree',
71+
$doctrineTreeType,
6772
array('choice_list' => array(), 'select_root_node' => true, 'root_node' => $this->routeRoot)
6873
)
69-
->add('name', 'text')
74+
->add('name', $textType)
7075
->end();
7176

7277
if (null === $this->getParentFieldDescription()) {
7378
$formMapper
7479
->with('form.group_general', array(
7580
'translation_domain' => 'CmfRoutingBundle',
7681
))
77-
->add('content', 'doctrine_phpcr_odm_tree', array('choice_list' => array(), 'required' => false, 'root_node' => $this->contentRoot))
82+
->add('content', $doctrineTreeType, array('choice_list' => array(), 'required' => false, 'root_node' => $this->contentRoot))
7883
->end()
7984
->with('form.group_advanced', array(
8085
'translation_domain' => 'CmfRoutingBundle',
8186
))
82-
->add('variablePattern', 'text', array('required' => false), array('help' => 'form.help_variable_pattern'))
87+
->add('variablePattern', $textType, array('required' => false), array('help' => 'form.help_variable_pattern'))
8388
->add(
8489
'defaults',
85-
'sonata_type_immutable_array',
90+
$sonataImmutableType,
8691
array('keys' => $this->configureFieldsForDefaults($this->getSubject()->getDefaults()))
8792
)
8893
->add(
8994
'options',
90-
'sonata_type_immutable_array',
91-
array(
92-
'keys' => $this->configureFieldsForOptions($this->getSubject()->getOptions())),
95+
$sonataImmutableType,
96+
array('keys' => $this->configureFieldsForOptions($this->getSubject()->getOptions())),
9397
array('help' => 'form.help_options')
9498
)
9599
->end()
@@ -139,18 +143,21 @@ public function getExportFormats()
139143
*/
140144
protected function configureFieldsForDefaults($dynamicDefaults)
141145
{
146+
$isSf28 = method_exists('Symfony\Component\Form\AbstractType', 'getBlockPrefix');
147+
$textType = $isSf28 ? 'Symfony\Component\Form\Extension\Core\Type\TextType' : 'text';
148+
142149
$defaults = array(
143-
'_controller' => array('_controller', 'text', array('required' => false)),
144-
'_template' => array('_template', 'text', array('required' => false)),
145-
'type' => array('type', 'cmf_routing_route_type', array(
150+
'_controller' => array('_controller', $textType, array('required' => false)),
151+
'_template' => array('_template', $textType, array('required' => false)),
152+
'type' => array('type', $isSf28 ? 'Symfony\Cmf\Bundle\RoutingBundle\Form\Type\RouteTypeType' : 'cmf_routing_route_type', array(
146153
'empty_value' => '',
147154
'required' => false,
148155
)),
149156
);
150157

151158
foreach ($dynamicDefaults as $name => $value) {
152159
if (!isset($defaults[$name])) {
153-
$defaults[$name] = array($name, 'text', array('required' => false));
160+
$defaults[$name] = array($name, $textType, array('required' => false));
154161
}
155162
}
156163

@@ -162,16 +169,16 @@ protected function configureFieldsForDefaults($dynamicDefaults)
162169
foreach ($matches as $match) {
163170
$name = substr($match[0][0], 1, -1);
164171
if (!isset($defaults[$name])) {
165-
$defaults[$name] = array($name, 'text', array('required' => true));
172+
$defaults[$name] = array($name, $textType, array('required' => true));
166173
}
167174
}
168175
}
169176

170177
if ($route && $route->getOption('add_format_pattern')) {
171-
$defaults['_format'] = array('_format', 'text', array('required' => true));
178+
$defaults['_format'] = array('_format', $textType, array('required' => true));
172179
}
173180
if ($route && $route->getOption('add_locale_pattern')) {
174-
$defaults['_locale'] = array('_format', 'text', array('required' => false));
181+
$defaults['_locale'] = array('_format', $textType, array('required' => false));
175182
}
176183

177184
return $defaults;
@@ -186,10 +193,13 @@ protected function configureFieldsForDefaults($dynamicDefaults)
186193
*/
187194
protected function configureFieldsForOptions(array $dynamicOptions)
188195
{
196+
$isSf28 = method_exists('Symfony\Component\Form\AbstractType', 'getBlockPrefix');
197+
$checkboxType = $isSf28 ? 'Symfony\Component\Form\Extension\Core\Type\CheckboxType' : 'checkbox';
198+
189199
$options = array(
190-
'add_locale_pattern' => array('add_locale_pattern', 'checkbox', array('required' => false, 'label' => 'form.label_add_locale_pattern', 'translation_domain' => 'CmfRoutingBundle')),
191-
'add_format_pattern' => array('add_format_pattern', 'checkbox', array('required' => false, 'label' => 'form.label_add_format_pattern', 'translation_domain' => 'CmfRoutingBundle')),
192-
'add_trailing_slash' => array('add_trailing_slash', 'checkbox', array('required' => false, 'label' => 'form.label_add_trailing_slash', 'translation_domain' => 'CmfRoutingBundle')),
200+
'add_locale_pattern' => array('add_locale_pattern', $checkboxType, array('required' => false, 'label' => 'form.label_add_locale_pattern', 'translation_domain' => 'CmfRoutingBundle')),
201+
'add_format_pattern' => array('add_format_pattern', $checkboxType, array('required' => false, 'label' => 'form.label_add_format_pattern', 'translation_domain' => 'CmfRoutingBundle')),
202+
'add_trailing_slash' => array('add_trailing_slash', $checkboxType, array('required' => false, 'label' => 'form.label_add_trailing_slash', 'translation_domain' => 'CmfRoutingBundle')),
193203
);
194204

195205
foreach ($dynamicOptions as $name => $value) {

Form/Type/RouteTypeType.php

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,13 +61,23 @@ public function addRouteType($type)
6161
*/
6262
public function getParent()
6363
{
64-
return 'choice';
64+
return method_exists('Symfony\Component\Form\AbstractType', 'getBlockPrefix') ? 'Symfony\Component\Form\Extension\Core\Type\ChoiceType' : 'choice';
6565
}
6666

6767
/**
6868
* {@inheritdoc}
69+
*
70+
* @todo Remove when Symfony <2.8 support is dropped.
6971
*/
7072
public function getName()
73+
{
74+
return $this->getBlockPrefix();
75+
}
76+
77+
/**
78+
* {@inheritdoc}
79+
*/
80+
public function getBlockPrefix()
7181
{
7282
return 'cmf_routing_route_type';
7383
}

0 commit comments

Comments
 (0)