[Form] changed DefaultFormFactory to be more 'useable'

This commit is contained in:
Fabien Potencier 2011-03-31 07:35:43 +02:00
parent c7ccb6643b
commit 30f26ed091

View File

@ -15,6 +15,7 @@ use Symfony\Component\HttpFoundation\File\TemporaryStorage;
use Symfony\Component\Validator\ValidatorInterface; use Symfony\Component\Validator\ValidatorInterface;
use Symfony\Component\Form\FormFactoryInterface; use Symfony\Component\Form\FormFactoryInterface;
use Symfony\Component\Form\Renderer\Loader\ArrayRendererFactoryLoader; use Symfony\Component\Form\Renderer\Loader\ArrayRendererFactoryLoader;
use Symfony\Component\Form\Renderer\Loader\RendererFactoryLoaderInterface;
use Symfony\Component\Form\Renderer\ThemeRendererFactory; use Symfony\Component\Form\Renderer\ThemeRendererFactory;
use Symfony\Component\Form\Type; use Symfony\Component\Form\Type;
use Symfony\Component\Form\Type\FormTypeInterface; use Symfony\Component\Form\Type\FormTypeInterface;
@ -49,29 +50,29 @@ class DefaultFormFactory extends FormFactory
{ {
$csrfProvider = new DefaultCsrfProvider($csrfSecret); $csrfProvider = new DefaultCsrfProvider($csrfSecret);
$tempStorage = new TemporaryStorage($storageSecret); $tempStorage = new TemporaryStorage($storageSecret);
$defaultThemeFactory = new PhpThemeFactory($charset); $rendererFactoryLoader = new ArrayRendererFactoryLoader(array('php' => new ThemeRendererFactory(new PhpThemeFactory($charset))));
return self::createInstance($defaultThemeFactory, $validator, $csrfProvider, $tempStorage); return self::createInstance($rendererFactoryLoader, $validator, $csrfProvider, $tempStorage);
} }
/** /**
* Factory method to simplify creation of a default form factory. * Factory method to simplify creation of a default form factory.
* *
* @param ThemeFactoryInterface $themeFactory * @param RendererFactoryLoaderInterface $rendererFactoryLoader
* @param ValidatorInterface $validator * @param ValidatorInterface $validator
* @param CsrfProviderInterface $crsfProvider * @param CsrfProviderInterface $crsfProvider
* @param TemporaryStorage $tempStorage * @param TemporaryStorage $tempStorage
* *
* @return DefaultFormFactory * @return DefaultFormFactory
*/ */
public static function createInstance(ThemeFactoryInterface $themeFactory, public static function createInstance(RendererFactoryLoaderInterface $rendererFactoryLoader,
ValidatorInterface $validator, ValidatorInterface $validator,
CsrfProviderInterface $crsfProvider, CsrfProviderInterface $crsfProvider,
TemporaryStorage $tempStorage) TemporaryStorage $tempStorage)
{ {
$typeLoader = new DefaultTypeLoader($validator, $crsfProvider, $tempStorage); $typeLoader = new DefaultTypeLoader($validator, $crsfProvider, $tempStorage);
return new self($typeLoader, $themeFactory); return new self($typeLoader, $rendererFactoryLoader);
} }
/** /**
@ -81,13 +82,13 @@ class DefaultFormFactory extends FormFactory
/** /**
* @param TypeLoaderInterface $typeLoader * @param TypeLoaderInterface $typeLoader
* @param ThemeFactoryInterface $themeFactory * @param RendererFactoryLoaderInterface $rendererFactoryLoader
*/ */
public function __construct(TypeLoaderInterface $typeLoader, ThemeFactoryInterface $themeFactory) public function __construct(TypeLoaderInterface $typeLoader, RendererFactoryLoaderInterface $rendererFactoryLoader)
{ {
$this->typeLoader = $typeLoader; $this->typeLoader = $typeLoader;
parent::__construct($typeLoader, new ArrayRendererFactoryLoader(array('php' => new ThemeRendererFactory($themeFactory)))); parent::__construct($typeLoader, $rendererFactoryLoader);
} }
/** /**