Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Fetching contributors…

Octocat-spinner-32-eaf2f5

Cannot retrieve contributors at this time

file 98 lines (84 sloc) 2.28 kb
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97
<?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\Component\Form;

use Symfony\Component\Form\Exception\FormException;

/**
* A form extension with preloaded types, type exceptions and type guessers.
*
* @author Bernhard Schussek <bschussek@gmail.com>
*/
class PreloadedExtension implements FormExtensionInterface
{
    /**
* @var array
*/
    private $types = array();

    /**
* @var array
*/
    private $typeExtensions = array();

    /**
* @var FormTypeGuesserInterface
*/
    private $typeGuesser;

    /**
* Creates a new preloaded extension.
*
* @param array $types The types that the extension should support.
* @param array $typeExtensions The type extensions that the extension should support.
* @param FormTypeGuesserInterface|null $typeGuesser The guesser that the extension should support.
*/
    public function __construct(array $types, array $typeExtensions, FormTypeGuesserInterface $typeGuesser = null)
    {
        $this->types = $types;
        $this->typeExtensions = $typeExtensions;
        $this->typeGuesser = $typeGuesser;
    }

    /**
* {@inheritdoc}
*/
    public function getType($name)
    {
        if (!isset($this->types[$name])) {
            throw new FormException(sprintf('The type "%s" can not be loaded by this extension', $name));
        }

        return $this->types[$name];
    }

    /**
* {@inheritdoc}
*/
    public function hasType($name)
    {
        return isset($this->types[$name]);
    }

    /**
* {@inheritdoc}
*/
    public function getTypeExtensions($name)
    {
        return isset($this->typeExtensions[$name])
            ? $this->typeExtensions[$name]
            : array();
    }

    /**
* {@inheritdoc}
*/
    public function hasTypeExtensions($name)
    {
        return !empty($this->typeExtensions[$name]);
    }

    /**
* {@inheritdoc}
*/
    public function getTypeGuesser()
    {
        return $this->typeGuesser;
    }
}
Something went wrong with that request. Please try again.