* * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Symfony\Component\Form; /** * The central registry of the Form component. * * @author Bernhard Schussek */ interface FormRegistryInterface { /** * Adds a form type. * * @param ResolvedFormTypeInterface $type The type */ public function addType(ResolvedFormTypeInterface $type); /** * Returns a form type by name. * * This methods registers the type extensions from the form extensions. * * @param string $name The name of the type * * @return ResolvedFormTypeInterface The type * * @throws Exception\UnexpectedTypeException if the passed name is not a string * @throws Exception\FormException if the type can not be retrieved from any extension */ public function getType($name); /** * Returns whether the given form type is supported. * * @param string $name The name of the type * * @return Boolean Whether the type is supported */ public function hasType($name); /** * Resolves a form type. * * @param FormTypeInterface $type * * @return ResolvedFormTypeInterface * * @throws Exception\UnexpectedTypeException if the types parent {@link FormTypeInterface::getParent()} is not a string * @throws Exception\FormException if the types parent can not be retrieved from any extension */ public function resolveType(FormTypeInterface $type); /** * Returns the guesser responsible for guessing types. * * @return FormTypeGuesserInterface */ public function getTypeGuesser(); /** * Returns the extensions loaded by the framework. * * @return array */ public function getExtensions(); }