54e66c518f
The extension classes are now the only constructor argument of the FormFactory class. They replace the existing "type loader" classes. new FormFactory(array( new CoreExtension($validator, $storage), new CsrfExtension($csrfProvider), new DoctrineOrmExtension($em), )); Together with a few upcoming commits this mechanism will make * extension of the form framework in bundles and * usage of the forms outside of Symfony2 much easier.
35 lines
824 B
PHP
35 lines
824 B
PHP
<?php
|
|
|
|
namespace Symfony\Tests\Component\Form\Fixtures;
|
|
|
|
use Symfony\Component\Form\DataTransformerInterface;
|
|
|
|
class FixedDataTransformer implements DataTransformerInterface
|
|
{
|
|
private $mapping;
|
|
|
|
public function __construct(array $mapping)
|
|
{
|
|
$this->mapping = $mapping;
|
|
}
|
|
|
|
public function transform($value)
|
|
{
|
|
if (!array_key_exists($value, $this->mapping)) {
|
|
throw new \RuntimeException(sprintf('No mapping for value "%s"', $value));
|
|
}
|
|
|
|
return $this->mapping[$value];
|
|
}
|
|
|
|
public function reverseTransform($value)
|
|
{
|
|
$result = array_search($value, $this->mapping, true);
|
|
|
|
if ($result === false) {
|
|
throw new \RuntimeException(sprintf('No reverse mapping for value "%s"', $value));
|
|
}
|
|
|
|
return $result;
|
|
}
|
|
} |