Вход Регистрация
Файл: symfony-2.7/src/Symfony/Component/Form/Extension/Core/DataTransformer/ChoiceToValueTransformer.php
Строк: 78
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace SymfonyComponentFormExtensionCoreDataTransformer;

use 
SymfonyComponentFormDataTransformerInterface;
use 
SymfonyComponentFormExceptionTransformationFailedException;
use 
SymfonyComponentFormExtensionCoreChoiceListChoiceListInterface;

/**
 * @author Bernhard Schussek <bschussek@gmail.com>
 */
class ChoiceToValueTransformer implements DataTransformerInterface
{
    private 
$choiceList;

    
/**
     * Constructor.
     *
     * @param ChoiceListInterface $choiceList
     */
    
public function __construct(ChoiceListInterface $choiceList)
    {
        
$this->choiceList $choiceList;
    }

    public function 
transform($choice)
    {
        return (string) 
current($this->choiceList->getValuesForChoices(array($choice)));
    }

    public function 
reverseTransform($value)
    {
        if (
null !== $value && !is_scalar($value)) {
            throw new 
TransformationFailedException('Expected a scalar.');
        }

        
// These are now valid ChoiceList values, so we can return null
        // right away
        
if ('' === $value || null === $value) {
            return;
        }

        
$choices $this->choiceList->getChoicesForValues(array($value));

        if (
!== count($choices)) {
            throw new 
TransformationFailedException(sprintf('The choice "%s" does not exist or is not unique'$value));
        }

        
$choice current($choices);

        return 
'' === $choice null $choice;
    }
}
Онлайн: 1
Реклама