123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129 |
- <?php
- /*
- * This file is part of the Sonata Project package.
- *
- * (c) Thomas Rabaix <thomas.rabaix@sonata-project.org>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
- namespace Sonata\CoreBundle;
- use Sonata\CoreBundle\DependencyInjection\Compiler\AdapterCompilerPass;
- use Sonata\CoreBundle\DependencyInjection\Compiler\FormFactoryCompilerPass;
- use Sonata\CoreBundle\DependencyInjection\Compiler\StatusRendererCompilerPass;
- use Sonata\CoreBundle\Form\FormHelper;
- use Symfony\Component\DependencyInjection\ContainerBuilder;
- use Symfony\Component\HttpKernel\Bundle\Bundle;
- class SonataCoreBundle extends Bundle
- {
- /**
- * {@inheritdoc}
- */
- public function build(ContainerBuilder $container)
- {
- $container->addCompilerPass(new StatusRendererCompilerPass());
- $container->addCompilerPass(new AdapterCompilerPass());
- $container->addCompilerPass(new FormFactoryCompilerPass());
- $this->registerFormMapping();
- }
- /**
- * {@inheritdoc}
- */
- public function boot()
- {
- // not sur we need this at Runtime ...
- $this->registerFormMapping();
- }
- /**
- * Register form mapping information.
- */
- public function registerFormMapping()
- {
- // symfony
- FormHelper::registerFormTypeMapping(array(
- 'form' => 'Symfony\Component\Form\Extension\Core\Type\FormType',
- 'birthday' => 'Symfony\Component\Form\Extension\Core\Type\BirthdayType',
- 'checkbox' => 'Symfony\Component\Form\Extension\Core\Type\CheckboxType',
- 'choice' => 'Symfony\Component\Form\Extension\Core\Type\ChoiceType',
- 'collection' => 'Symfony\Component\Form\Extension\Core\Type\CollectionType',
- 'country' => 'Symfony\Component\Form\Extension\Core\Type\CountryType',
- 'date' => 'Symfony\Component\Form\Extension\Core\Type\DateType',
- 'datetime' => 'Symfony\Component\Form\Extension\Core\Type\DateTimeType',
- 'email' => 'Symfony\Component\Form\Extension\Core\Type\EmailType',
- 'file' => 'Symfony\Component\Form\Extension\Core\Type\FileType',
- 'hidden' => 'Symfony\Component\Form\Extension\Core\Type\HiddenType',
- 'integer' => 'Symfony\Component\Form\Extension\Core\Type\IntegerType',
- 'language' => 'Symfony\Component\Form\Extension\Core\Type\LanguageType',
- 'locale' => 'Symfony\Component\Form\Extension\Core\Type\LocaleType',
- 'money' => 'Symfony\Component\Form\Extension\Core\Type\MoneyType',
- 'number' => 'Symfony\Component\Form\Extension\Core\Type\NumberType',
- 'password' => 'Symfony\Component\Form\Extension\Core\Type\PasswordType',
- 'percent' => 'Symfony\Component\Form\Extension\Core\Type\PercentType',
- 'radio' => 'Symfony\Component\Form\Extension\Core\Type\RadioType',
- 'repeated' => 'Symfony\Component\Form\Extension\Core\Type\RepeatedType',
- 'search' => 'Symfony\Component\Form\Extension\Core\Type\SearchType',
- 'textarea' => 'Symfony\Component\Form\Extension\Core\Type\TextareaType',
- 'text' => 'Symfony\Component\Form\Extension\Core\Type\TextType',
- 'time' => 'Symfony\Component\Form\Extension\Core\Type\TimeType',
- 'timezone' => 'Symfony\Component\Form\Extension\Core\Type\TimezoneType',
- 'url' => 'Symfony\Component\Form\Extension\Core\Type\UrlType',
- 'button' => 'Symfony\Component\Form\Extension\Core\Type\ButtonType',
- 'submit' => 'Symfony\Component\Form\Extension\Core\Type\SubmitType',
- 'reset' => 'Symfony\Component\Form\Extension\Core\Type\ResetType',
- 'currency' => 'Symfony\Component\Form\Extension\Core\Type\CurrencyType',
- 'entity' => 'Symfony\Bridge\Doctrine\Form\Type\EntityType',
- ));
- // core bundle
- FormHelper::registerFormTypeMapping(array(
- 'sonata_type_immutable_array' => 'Sonata\CoreBundle\Form\Type\ImmutableArrayType',
- 'sonata_type_boolean' => 'Sonata\CoreBundle\Form\Type\BooleanType',
- 'sonata_type_collection' => 'Sonata\CoreBundle\Form\Type\CollectionType',
- 'sonata_type_translatable_choice' => 'Sonata\CoreBundle\Form\Type\TranslatableChoiceType',
- 'sonata_type_date_range' => 'Sonata\CoreBundle\Form\Type\DateRangeType',
- 'sonata_type_datetime_range' => 'Sonata\CoreBundle\Form\Type\DateTimeRangeType',
- 'sonata_type_date_picker' => 'Sonata\CoreBundle\Form\Type\DatePickerType',
- 'sonata_type_datetime_picker' => 'Sonata\CoreBundle\Form\Type\DateTimePickerType',
- 'sonata_type_date_range_picker' => 'Sonata\CoreBundle\Form\Type\DateRangePickerType',
- 'sonata_type_datetime_range_picker' => 'Sonata\CoreBundle\Form\Type\DateTimeRangePickerType',
- 'sonata_type_equal' => 'Sonata\CoreBundle\Form\Type\EqualType',
- 'sonata_type_color_selector' => 'Sonata\CoreBundle\Form\Type\ColorSelectorType',
- ));
- $formTypes = array(
- 'form.type_extension.form.http_foundation',
- 'form.type_extension.form.validator',
- 'form.type_extension.csrf',
- 'form.type_extension.form.data_collector',
- );
- if (class_exists('Nelmio\ApiDocBundle\Form\Extension\DescriptionFormTypeExtension')) {
- $formTypes[] = 'nelmio_api_doc.form.extension.description_form_type_extension';
- }
- FormHelper::registerFormExtensionMapping('form', $formTypes);
- FormHelper::registerFormExtensionMapping('repeated', array(
- 'form.type_extension.repeated.validator',
- ));
- FormHelper::registerFormExtensionMapping('submit', array(
- 'form.type_extension.submit.validator',
- ));
- if ($this->container && $this->container->hasParameter('sonata.core.form.mapping.type')) {
- // from configuration file
- FormHelper::registerFormTypeMapping($this->container->getParameter('sonata.core.form.mapping.type'));
- foreach ($this->container->getParameter('sonata.core.form.mapping.extension') as $ext => $types) {
- FormHelper::registerFormExtensionMapping($ext, $types);
- }
- }
- }
- }
|