当前位置: 首页>>代码示例>>PHP>>正文


PHP OptionsResolverInterface::setNormalizers方法代码示例

本文整理汇总了PHP中Symfony\Component\OptionsResolver\OptionsResolverInterface::setNormalizers方法的典型用法代码示例。如果您正苦于以下问题:PHP OptionsResolverInterface::setNormalizers方法的具体用法?PHP OptionsResolverInterface::setNormalizers怎么用?PHP OptionsResolverInterface::setNormalizers使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Symfony\Component\OptionsResolver\OptionsResolverInterface的用法示例。


在下文中一共展示了OptionsResolverInterface::setNormalizers方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: __construct

 /**
  * @param EventDispatcherInterface $dispatcher
  */
 public function __construct(EventDispatcherInterface $dispatcher)
 {
     $this->dispatcher   = $dispatcher;
     $this->specResolver = new OptionsResolver;
     $this->specResolver->setDefaults(
         array(
             'on'           => self::ALL,
             'from'         => self::ALL,
             'to'           => self::ALL,
             'exclude_from' => array(),
             'exclude_to'   => array(),
         )
     );
     $this->specResolver->setAllowedTypes(
         array(
             'on'           => array('string', 'array'),
             'from'         => array('string', 'array'),
             'to'           => array('string', 'array'),
             'exclude_from' => array('string', 'array'),
             'exclude_to'   => array('string', 'array'),
         )
     );
     $toArrayNormalizer = function (Options $options, $value) {
         return (array)$value;
     };
     $this->specResolver->setNormalizers(
         array(
             'on'           => $toArrayNormalizer,
             'from'         => $toArrayNormalizer,
             'to'           => $toArrayNormalizer,
             'exclude_to'   => $toArrayNormalizer,
             'exclude_from' => $toArrayNormalizer,
         )
     );
 }
开发者ID:Aasit,项目名称:DISCOUNT--SRV-I,代码行数:38,代码来源:CallbackHandler.php

示例2: configureResolver

 /**
  * {@inheritdoc}
  */
 public function configureResolver(OptionsResolverInterface $resolver)
 {
     $patientNormalizer = function (Options $options, $value) {
         static $resource;
         if (!$resource) {
             $resource = $options['patient_resource']->getRepository();
         }
         return $resource->getByMRN($value);
     };
     $codes = $this->getCodes();
     $diagnosisNormalizer = function (Options $options, $value) use($codes) {
         static $resource;
         if (!$resource) {
             $resource = $options['diagnosis_resource']->getRepository();
         }
         if ($patient = $options['patient']) {
             foreach ($patient->getDiagnoses() as $diagnosis) {
                 if (in_array($diagnosis->getCode()->getCode(), $codes)) {
                     return $diagnosis;
                 }
             }
         }
     };
     $dateNormalizer = function (Options $options, $value) {
         return empty($value) ? null : new DateTime($value);
     };
     $resolver->setRequired(array('patient', 'activity_date'));
     $resolver->setOptional(array('diagnosis'));
     $resolver->setAllowedTypes(array('patient' => array('string'), 'diagnosis' => array('Accard\\Component\\Diagnosis\\Model\\DiagnosisInterface', 'null'), 'activity_date' => array('string', 'null')));
     $resolver->setNormalizers(array('patient' => $patientNormalizer, 'diagnosis' => $diagnosisNormalizer, 'activity_date' => $dateNormalizer));
 }
开发者ID:upenn-dag,项目名称:patient-repository,代码行数:34,代码来源:ActivityImporter.php

示例3: setDefaultOptions

 public function setDefaultOptions(OptionsResolverInterface $resolver)
 {
     $resolver->setDefaults(array('attr' => $this->defaultAttributes));
     $resolver->setNormalizers(array('attr' => function (Options $options, $value) {
         return array_merge($this->defaultAttributes, $value);
     }));
 }
开发者ID:claroline,项目名称:distribution,代码行数:7,代码来源:TinymceType.php

示例4: setDefaultOptions

 /**
  * {@inheritdoc}
  */
 public function setDefaultOptions(OptionsResolverInterface $resolver)
 {
     $defaultFieldOptions = ['multiple' => true];
     $resolver->setDefaults(['dictionary_code' => null, 'class' => null, 'field_options' => $defaultFieldOptions]);
     $resolver->setNormalizers(['class' => function (Options $options, $value) {
         if ($value !== null) {
             return $value;
         }
         if (empty($options['dictionary_code'])) {
             throw new InvalidOptionsException('Either "class" or "dictionary_code" must option must be set.');
         }
         $class = ExtendHelper::buildEnumValueClassName($options['dictionary_code']);
         if (!is_a($class, 'Oro\\Bundle\\EntityExtendBundle\\Entity\\AbstractEnumValue', true)) {
             throw new InvalidOptionsException(sprintf('"%s" must be a child of "%s"', $class, 'Oro\\Bundle\\EntityExtendBundle\\Entity\\AbstractEnumValue'));
         }
         return $class;
     }, 'field_options' => function (Options $options, $value) use(&$defaultFieldOptions) {
         if (isset($options['class'])) {
             $nullValue = null;
             if ($options->has('null_value')) {
                 $nullValue = $options->get('null_value');
             }
             $value['choices'] = $this->getChoices($options['class'], $nullValue);
         } else {
             $value['choices'] = [];
         }
         return array_merge($defaultFieldOptions, $value);
     }]);
 }
开发者ID:Maksold,项目名称:platform,代码行数:32,代码来源:DictionaryFilterType.php

示例5: setDefaultOptions

 /**
  * (non-PHPdoc)
  * @see Symfony\Component\Form.AbstractType::setDefaultOptions()
  */
 public function setDefaultOptions(OptionsResolverInterface $resolver)
 {
     $resolver->setDefaults(array('translation_domain' => 'NeutronFormBundle', 'date_format' => \IntlDateFormatter::LONG, 'date_pattern' => null, 'time_format' => \IntlDateFormatter::MEDIUM));
     $resolver->setNormalizers(array('read_only' => function (Options $options, $value) {
         return true;
     }));
 }
开发者ID:firano,项目名称:form-bundle,代码行数:11,代码来源:PlainType.php

示例6: setDefaultOptions

 /**
  * {@inheritdoc}
  */
 public function setDefaultOptions(OptionsResolverInterface $resolver)
 {
     if (!$this->channelClass) {
         throw new \InvalidArgumentException('Channel class is missing');
     }
     $queryBuilderNormalizer = function (Options $options, $qb) {
         /** @var EntityManager $em */
         $em = $options['em'];
         /** @var EntityRepository $repository */
         $repository = $em->getRepository($this->channelClass);
         $entities = $options->get('entities');
         /** @var QueryBuilder $queryBuilder */
         $queryBuilder = $qb($repository, $entities);
         $queryBuilder->join('c.dataSource', 'd')->andWhere($queryBuilder->expr()->andX($queryBuilder->expr()->eq('d.type', ':type'), $queryBuilder->expr()->eq('d.enabled', ':enabled')))->setParameter('type', ChannelType::TYPE)->setParameter('enabled', true);
         $filteredQb = clone $queryBuilder;
         /** @var Channel[] $channels */
         $channels = $filteredQb->getQuery()->getResult();
         $skipEntities = [];
         foreach ($channels as $channel) {
             $dataSource = $channel->getDataSource();
             if (!(bool) $dataSource->getSynchronizationSettings()->offsetGetOr('isTwoWaySyncEnabled')) {
                 $skipEntities[] = $channel->getId();
             }
         }
         if ($skipEntities) {
             $queryBuilder->andWhere($queryBuilder->expr()->notIn('c.id', ':skipEntities'))->setParameter('skipEntities', $skipEntities);
         }
         return $queryBuilder;
     };
     $resolver->setNormalizers(['query_builder' => $queryBuilderNormalizer]);
 }
开发者ID:antrampa,项目名称:crm,代码行数:34,代码来源:CustomerChannelSelectType.php

示例7: setDefaultOptions

 /**
  * {@inheritdoc}
  */
 public function setDefaultOptions(OptionsResolverInterface $resolver)
 {
     $resolver->setDefaults(array('em' => null, 'property' => null, 'queryBuilder' => null, 'multiple' => true, 'values_delimiter' => ','))->setAllowedValues(array('multiple' => array(true, false)));
     $resolver->setRequired(array('class'));
     $registry = $this->registry;
     $emNormalizer = function (Options $options, $em) use($registry) {
         if (null !== $em) {
             if ($em instanceof EntityManager) {
                 return $em;
             } elseif (is_string($em)) {
                 $em = $registry->getManager($em);
             } else {
                 throw new FormException(sprintf('Option "em" should be a string or entity manager object, %s given', is_object($em) ? get_class($em) : gettype($em)));
             }
         } else {
             $em = $registry->getManagerForClass($options['class']);
         }
         if (null === $em) {
             throw new FormException(sprintf('Class "%s" is not a managed Doctrine entity. Did you forget to map it?', $options['class']));
         }
         return $em;
     };
     $queryBuilderNormalizer = function (Options $options, $queryBuilder) {
         if (null !== $queryBuilder && !is_callable($queryBuilder)) {
             throw new FormException(sprintf('Option "queryBuilder" should be a callable, %s given', is_object($queryBuilder) ? get_class($queryBuilder) : gettype($queryBuilder)));
         }
         return $queryBuilder;
     };
     $resolver->setNormalizers(array('em' => $emNormalizer, 'queryBuilder' => $queryBuilderNormalizer));
 }
开发者ID:Maksold,项目名称:platform,代码行数:33,代码来源:EntityIdentifierType.php

示例8: setDefaultOptions

 /**
  * {@inheritDoc}
  */
 public function setDefaultOptions(OptionsResolverInterface $resolver)
 {
     $resolver->setDefaults(array('entity_class' => null, 'config_id' => null));
     $resolver->setNormalizers(array('choices' => function (Options $options, $value) {
         if (!empty($value)) {
             return $value;
         }
         $entityClass = $options['entity_class'];
         if (!$entityClass && $options->has('config_id')) {
             $configId = $options['config_id'];
             if ($configId && $configId instanceof ConfigIdInterface) {
                 $entityClass = $configId->getClassName();
             }
         }
         $choices = array();
         if ($entityClass) {
             /** @var WorkflowDefinition[] $definitions */
             $definitions = $this->registry->getRepository('OroWorkflowBundle:WorkflowDefinition')->findBy(array('relatedEntity' => $entityClass));
             foreach ($definitions as $definition) {
                 $name = $definition->getName();
                 $label = $definition->getLabel();
                 $choices[$name] = $label;
             }
         }
         return $choices;
     }));
 }
开发者ID:Maksold,项目名称:platform,代码行数:30,代码来源:WorkflowSelectType.php

示例9: setDefaultOptions

 /**
  * {@inheritDoc}
  */
 public function setDefaultOptions(OptionsResolverInterface $resolver)
 {
     $uploadConfig = array('uploadRoute' => 'comur_api_upload', 'uploadUrl' => null, 'webDir' => null, 'fileExt' => '*.jpg;*.gif;*.png;*.jpeg', 'libraryDir' => null, 'libraryRoute' => 'comur_api_image_library', 'showLibrary' => true, 'saveOriginal' => false, 'generateFilename' => true);
     $cropConfig = array('minWidth' => 1, 'minHeight' => 1, 'aspectRatio' => true, 'cropRoute' => 'comur_api_crop', 'forceResize' => true, 'thumbs' => null);
     $resolver->setDefaults(array('uploadConfig' => $uploadConfig, 'cropConfig' => $cropConfig, 'inherit_data' => true));
     $isGallery = $this->isGallery;
     $galleryDir = $this->galleryDir;
     $resolver->setNormalizers(array('uploadConfig' => function (Options $options, $value) use($uploadConfig, $isGallery, $galleryDir) {
         $config = array_merge($uploadConfig, $value);
         if ($isGallery) {
             $config['uploadUrl'] = $config['uploadUrl'] . '/' . $galleryDir;
             $config['webDir'] = $config['webDir'] . '/' . $galleryDir;
             $config['saveOriginal'] = false;
         }
         if (!isset($config['libraryDir'])) {
             $config['libraryDir'] = $config['uploadUrl'];
         }
         // if($config['saveOriginal']){
         //     $options['compound']=true;
         // }
         return $config;
     }, 'cropConfig' => function (Options $options, $value) use($cropConfig) {
         return array_merge($cropConfig, $value);
     }));
 }
开发者ID:comur,项目名称:image-bundle,代码行数:28,代码来源:CroppableImageType.php

示例10: setDefaultOptions

 /**
  * {@inheritdoc}
  */
 public function setDefaultOptions(OptionsResolverInterface $resolver)
 {
     $defaultConfigs = ['placeholder' => 'oro.entity.form.choose_entity', 'result_template_twig' => 'OroEntityBundle:Choice:entity/result.html.twig', 'selection_template_twig' => 'OroEntityBundle:Choice:entity/selection.html.twig'];
     $resolver->setDefaults(['choices' => function (Options $options) {
         return $this->getChoices($options['show_plural']);
     }, 'choice_attr' => function ($choice) {
         return $this->getChoiceAttributes($choice);
     }, 'empty_value' => '', 'show_plural' => false, 'configs' => $defaultConfigs, 'translatable_options' => false, 'group_by' => function () {
         // @codingStandardsIgnoreStart
         /**
          * This option was added since duplicated values are removed otherwise
          * (which happens if there are at least 2 entities having the same translations in
          * currently used language)
          *
          * Groups are created by flipping choices first
          * https://github.com/symfony/symfony/blob/c25e054d9e6b376d1f242e9d92454e7037bc4c01/src/Symfony/Component/Form/Extension/Core/Type/ChoiceType.php#L444
          * then choiceView is created from each group:
          * https://github.com/symfony/symfony/blob/c25e054d9e6b376d1f242e9d92454e7037bc4c01/src/Symfony/Component/Form/ChoiceList/Factory/DefaultChoiceListFactory.php#L174
          */
         // @codingStandardsIgnoreEnd
         return null;
     }]);
     $resolver->setNormalizers(['configs' => function (Options $options, $configs) use($defaultConfigs) {
         return array_merge($defaultConfigs, $configs);
     }]);
 }
开发者ID:Maksold,项目名称:platform,代码行数:29,代码来源:EntityChoiceType.php

示例11: setDefaultOptions

 /**
  * {@inheritdoc}
  */
 public function setDefaultOptions(OptionsResolverInterface $resolver)
 {
     $resolver->setDefaults(['multiple' => true, 'expanded' => true, 'choices' => $this->getChoices()]);
     $resolver->setNormalizers(['disabled' => function (Options $options, $value) {
         return $this->isReadOnly($options) ? true : $value;
     }]);
 }
开发者ID:kstupak,项目名称:platform,代码行数:10,代码来源:ShareScopeType.php

示例12: setDefaultOptions

 /**
  * Custom options:
  * - "workflow_item" - required, instance of WorkflowItem entity
  * - "step_name"     - optional, name of step
  *
  * @param OptionsResolverInterface $resolver
  */
 public function setDefaultOptions(OptionsResolverInterface $resolver)
 {
     $resolver->setRequired(array('workflow_item'));
     $resolver->setOptional(array('step_name'));
     $resolver->setAllowedTypes(array('step_name' => 'string'));
     $resolver->setNormalizers(array('step_name' => function (Options $options, $stepName) {
         /** @var Workflow $workflow */
         $workflow = $options['workflow'];
         /** @var WorkflowItem $workflowItem */
         $workflowItem = $options['workflow_item'];
         if (!$stepName) {
             $stepName = $workflowItem->getCurrentStepName();
         }
         if (!$workflow->getStepManager()->getStep($stepName)) {
             throw new InvalidConfigurationException(sprintf('Invalid reference to unknown step "%s" of workflow "%s".', $stepName, $workflow->getName()));
         }
         return $stepName;
     }, 'disable_attribute_fields' => function (Options $options, $disableAttributeFields) {
         /** @var Workflow $workflow */
         $workflow = $options['workflow'];
         /** @var WorkflowItem $workflowItem */
         $workflowItem = $options['workflow_item'];
         $step = $workflow->getStepManager()->getStep($options['step_name']);
         if ($step->getName() !== $workflowItem->getCurrentStepName() || $workflowItem->isClosed()) {
             $disableAttributeFields = true;
         }
         return $disableAttributeFields;
     }));
 }
开发者ID:ashutosh-srijan,项目名称:findit_akeneo,代码行数:36,代码来源:WorkflowStepType.php

示例13: setDefaultOptions

 /**
  * {@inheritDoc}
  */
 public function setDefaultOptions(OptionsResolverInterface $resolver)
 {
     $resolver->setRequired(['attribute_type']);
     $resolver->setDefaults(['empty_value' => 'orob2b.attribute.attribute_type_constraint.none']);
     $resolver->setNormalizers(['choices' => function (Options $options, $value) {
         if (!empty($value)) {
             return $value;
         }
         $choices = [];
         if ($options['attribute_type'] instanceof AttributeTypeInterface) {
             $constraints = $options['attribute_type']->getOptionalConstraints();
         } elseif (is_string($options['attribute_type'])) {
             $attributeType = $this->attributeTypeRegistry->getTypeByName($options['attribute_type']);
             if (!$attributeType) {
                 throw new \LogicException(sprintf('Attribute type name "%s" is not exist in attribute type registry.', $options['attribute_type']));
             }
             $constraints = $attributeType->getOptionalConstraints();
         } else {
             throw new UnexpectedTypeException($options['attribute_type'], 'OroB2B\\Bundle\\AttributeBundle\\AttributeType\\AttributeTypeInterface or string');
         }
         foreach ($constraints as $choice) {
             $choices[$choice->getAlias()] = 'orob2b.validation.constraint.alias.' . $choice->getAlias();
         }
         return $choices;
     }]);
 }
开发者ID:hafeez3000,项目名称:orocommerce,代码行数:29,代码来源:AttributeTypeConstraintType.php

示例14: setDefaultOptions

 /**
  * (non-PHPdoc)
  * @see Symfony\Component\Form.AbstractType::setDefaultOptions()
  */
 public function setDefaultOptions(OptionsResolverInterface $resolver)
 {
     $defaultConfigs = array('showOn' => 'button', 'dateFormat' => 'yy-mm-dd', 'timeFormat' => 'HH:mm', 'showSecond' => false);
     $resolver->setDefaults(array('input' => 'datetime', 'with_seconds' => false, 'use_meridiem' => false, 'date_timezone' => null, 'user_timezone' => null, 'datetime_format' => 'Y-m-d H:i', 'parts' => array('year', 'month', 'day', 'hour', 'minute'), 'translation_domain' => 'NeutronFormBundle', 'configs' => $defaultConfigs));
     $resolver->setNormalizers(array('datetime_format' => function (Options $options, $value) {
         if ($options->has('with_seconds') && $options->get('with_seconds') === true) {
             return $options->get('use_meridiem') === true ? 'Y-m-d h:i:s a' : 'Y-m-d H:i:s';
         }
         return $options->get('use_meridiem') === true ? 'Y-m-d h:i a' : 'Y-m-d H:i';
     }, 'parts' => function (Options $options, $value) {
         if ($options->has('with_seconds') && $options->get('with_seconds') === true) {
             return array('year', 'month', 'day', 'hour', 'minute', 'second');
         }
         return array('year', 'month', 'day', 'hour', 'minute');
     }, 'configs' => function (Options $options, $value) use($defaultConfigs) {
         $configs = array_replace_recursive($defaultConfigs, $value);
         if (!$options->has('with_seconds') || $options->get('with_seconds') === false) {
             $configs['timeFormat'] = $options->get('use_meridiem') === true ? 'hh:mm tt' : 'HH:mm';
             $configs['showSecond'] = false;
         } else {
             $configs['timeFormat'] = $options->get('use_meridiem') === true ? 'hh:mm:ss tt' : 'HH:mm:ss';
             $configs['showSecond'] = true;
         }
         return $configs;
     }));
     $resolver->setAllowedValues(array('input' => array('datetime', 'string', 'timestamp', 'array'), 'datetime_format' => array('Y-m-d H:i:s', 'Y-m-d h:i:s a', 'Y-m-d H:i', 'Y-m-d h:i a')));
 }
开发者ID:firano,项目名称:form-bundle,代码行数:31,代码来源:DateTimePickerType.php

示例15: setDefaultOptions

 /**
  * Options:
  * - grid_name - name of grid that will be used for entity selection
  * - grid_parameters - parameters need to be passed to grid request
  * - grid_render_parameters - render parameters need to be set for grid rendering
  * - existing_entity_grid_id - grid row field name used as entity identifier
  * - create_enabled - enables new entity creation
  * - create_acl - ACL resource used to determine that create is allowed, by default CREATE for entity used
  * - create_form_route - route name for creation form
  * - create_form_route_parameters - route parameters for create_form_route_parameters
  *
  * {@inheritDoc}
  */
 public function setDefaultOptions(OptionsResolverInterface $resolver)
 {
     $resolver->setDefaults(['existing_entity_grid_id' => 'id', 'create_enabled' => true, 'create_acl' => null, 'create_form_route' => null, 'create_form_route_parameters' => [], 'grid_name' => null, 'grid_parameters' => [], 'grid_render_parameters' => []]);
     $resolver->setNormalizers(['create_enabled' => function (Options $options, $createEnabled) {
         $createRouteName = $options->get('create_form_route');
         $createEnabled = $createEnabled && !empty($createRouteName);
         if ($createEnabled) {
             $aclName = $options->get('create_acl');
             if (empty($aclName)) {
                 $aclObjectName = 'Entity:' . $options->get('entity_class');
                 $createEnabled = $this->securityFacade->isGranted('CREATE', $aclObjectName);
             } else {
                 $createEnabled = $this->securityFacade->isGranted($aclName);
             }
         }
         return $createEnabled;
     }, 'grid_name' => function (Options $options, $gridName) {
         if (!empty($gridName)) {
             return $gridName;
         }
         $formConfig = $this->configManager->getProvider('form')->getConfig($options->get('entity_class'));
         if ($formConfig->has('grid_name')) {
             return $formConfig->get('grid_name');
         }
         throw new InvalidConfigurationException('The option "grid_name" must be set.');
     }]);
 }
开发者ID:xamin123,项目名称:platform,代码行数:40,代码来源:OroEntitySelectOrCreateInlineType.php


注:本文中的Symfony\Component\OptionsResolver\OptionsResolverInterface::setNormalizers方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。