[Form] Replace methods in ChoiceView by public properties (PHP +100ms, Twig +400ms)

This commit is contained in:
Bernhard Schussek 2012-07-16 17:38:50 +02:00
parent d072f35ea0
commit 400c95bb4d
5 changed files with 8 additions and 28 deletions

View File

@ -2,10 +2,10 @@
<?php if ($view['form']->isChoiceGroup($choice)): ?> <?php if ($view['form']->isChoiceGroup($choice)): ?>
<optgroup label="<?php echo $view->escape($view['translator']->trans($index, array(), $translation_domain)) ?>"> <optgroup label="<?php echo $view->escape($view['translator']->trans($index, array(), $translation_domain)) ?>">
<?php foreach ($choice as $nested_choice): ?> <?php foreach ($choice as $nested_choice): ?>
<option value="<?php echo $view->escape($nested_choice->getValue()) ?>"<?php if ($view['form']->isChoiceSelected($form, $nested_choice)): ?> selected="selected"<?php endif?>><?php echo $view->escape($view['translator']->trans($nested_choice->getLabel(), array(), $translation_domain)) ?></option> <option value="<?php echo $view->escape($nested_choice->value) ?>"<?php if ($view['form']->isChoiceSelected($form, $nested_choice)): ?> selected="selected"<?php endif?>><?php echo $view->escape($view['translator']->trans($nested_choice->label, array(), $translation_domain)) ?></option>
<?php endforeach ?> <?php endforeach ?>
</optgroup> </optgroup>
<?php else: ?> <?php else: ?>
<option value="<?php echo $view->escape($choice->getValue()) ?>"<?php if ($view['form']->isChoiceSelected($form, $choice)): ?> selected="selected"<?php endif?>><?php echo $view->escape($view['translator']->trans($choice->getLabel(), array(), $translation_domain)) ?></option> <option value="<?php echo $view->escape($choice->value) ?>"<?php if ($view['form']->isChoiceSelected($form, $choice)): ?> selected="selected"<?php endif?>><?php echo $view->escape($view['translator']->trans($choice->label, array(), $translation_domain)) ?></option>
<?php endif ?> <?php endif ?>
<?php endforeach ?> <?php endforeach ?>

View File

@ -226,8 +226,8 @@ class ChoiceType extends AbstractType
$this->addSubForms($builder, $choiceView, $options); $this->addSubForms($builder, $choiceView, $options);
} else { } else {
$choiceOpts = array( $choiceOpts = array(
'value' => $choiceView->getValue(), 'value' => $choiceView->value,
'label' => $choiceView->getLabel(), 'label' => $choiceView->label,
'translation_domain' => $options['translation_domain'], 'translation_domain' => $options['translation_domain'],
); );

View File

@ -23,14 +23,14 @@ class ChoiceView
* *
* @var string * @var string
*/ */
private $value; public $value;
/** /**
* The label displayed to humans. * The label displayed to humans.
* *
* @var string * @var string
*/ */
private $label; public $label;
/** /**
* Creates a new ChoiceView. * Creates a new ChoiceView.
@ -43,24 +43,4 @@ class ChoiceView
$this->value = $value; $this->value = $value;
$this->label = $label; $this->label = $label;
} }
/**
* Returns the choice value.
*
* @return string The view representation of the choice.
*/
public function getValue()
{
return $this->value;
}
/**
* Returns the choice label.
*
* @return string The label displayed to humans.
*/
public function getLabel()
{
return $this->label;
}
} }

View File

@ -186,7 +186,7 @@ class FormRenderer implements FormRendererInterface
public function isChoiceSelected(FormView $view, ChoiceView $choice) public function isChoiceSelected(FormView $view, ChoiceView $choice)
{ {
$value = $view->vars['value']; $value = $view->vars['value'];
$choiceValue = $choice->getValue(); $choiceValue = $choice->value;
if (is_array($value)) { if (is_array($value)) {
return false !== array_search($choiceValue, $value, true); return false !== array_search($choiceValue, $value, true);

View File

@ -38,7 +38,7 @@ class CountryTypeTest extends LocalizedTestCase
$choices = $view->vars['choices']; $choices = $view->vars['choices'];
foreach ($choices as $choice) { foreach ($choices as $choice) {
if ('ZZ' === $choice->getValue()) { if ('ZZ' === $choice->value) {
$this->fail('Should not contain choice "ZZ"'); $this->fail('Should not contain choice "ZZ"');
} }
} }