12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- <?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 Symfony\Bridge\Doctrine\Form;
- use Doctrine\Common\Persistence\ManagerRegistry;
- use Symfony\Bridge\Doctrine\Form\Type\EntityType;
- use Symfony\Component\Form\AbstractExtension;
- use Symfony\Component\Form\ChoiceList\Factory\CachingFactoryDecorator;
- use Symfony\Component\Form\ChoiceList\Factory\ChoiceListFactoryInterface;
- use Symfony\Component\Form\ChoiceList\Factory\DefaultChoiceListFactory;
- use Symfony\Component\Form\ChoiceList\Factory\PropertyAccessDecorator;
- use Symfony\Component\PropertyAccess\PropertyAccess;
- use Symfony\Component\PropertyAccess\PropertyAccessorInterface;
- class DoctrineOrmExtension extends AbstractExtension
- {
- protected $registry;
- private $propertyAccessor;
- private $choiceListFactory;
- public function __construct(ManagerRegistry $registry, PropertyAccessorInterface $propertyAccessor = null, ChoiceListFactoryInterface $choiceListFactory = null)
- {
- $this->registry = $registry;
- $this->propertyAccessor = $propertyAccessor ?: PropertyAccess::createPropertyAccessor();
- $this->choiceListFactory = $choiceListFactory ?: new CachingFactoryDecorator(new PropertyAccessDecorator(new DefaultChoiceListFactory(), $this->propertyAccessor));
- }
- protected function loadTypes()
- {
- return array(
- new EntityType($this->registry, $this->propertyAccessor, $this->choiceListFactory),
- );
- }
- protected function loadTypeGuesser()
- {
- return new DoctrineOrmTypeGuesser($this->registry);
- }
- }
|