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


PHP ClassMetadata::getPropertyMetadata方法代码示例

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


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

示例1: testValidatePropertyValueWithClassName

 public function testValidatePropertyValueWithClassName()
 {
     $callback1 = function ($value, ExecutionContextInterface $context) {
         $propertyMetadatas = $this->metadata->getPropertyMetadata('firstName');
         $this->assertSame($this::ENTITY_CLASS, $context->getClassName());
         $this->assertSame('firstName', $context->getPropertyName());
         $this->assertSame('', $context->getPropertyPath());
         $this->assertSame('Group', $context->getGroup());
         $this->assertSame($propertyMetadatas[0], $context->getMetadata());
         $this->assertSame('Bernhard', $context->getRoot());
         $this->assertSame('Bernhard', $context->getValue());
         $this->assertSame('Bernhard', $value);
         $context->addViolation('Message %param%', array('%param%' => 'value'));
     };
     $callback2 = function ($value, ExecutionContextInterface $context) {
         $context->addViolation('Other violation');
     };
     $this->metadata->addPropertyConstraint('firstName', new Callback(array('callback' => $callback1, 'groups' => 'Group')));
     $this->metadata->addPropertyConstraint('lastName', new Callback(array('callback' => $callback2, 'groups' => 'Group')));
     $violations = $this->validatePropertyValue(self::ENTITY_CLASS, 'firstName', 'Bernhard', 'Group');
     /** @var ConstraintViolationInterface[] $violations */
     $this->assertCount(1, $violations);
     $this->assertSame('Message value', $violations[0]->getMessage());
     $this->assertSame('Message %param%', $violations[0]->getMessageTemplate());
     $this->assertSame(array('%param%' => 'value'), $violations[0]->getParameters());
     $this->assertSame('', $violations[0]->getPropertyPath());
     $this->assertSame('Bernhard', $violations[0]->getRoot());
     $this->assertSame('Bernhard', $violations[0]->getInvalidValue());
     $this->assertNull($violations[0]->getPlural());
     $this->assertNull($violations[0]->getCode());
 }
开发者ID:fcontreras2,项目名称:Validator,代码行数:31,代码来源:AbstractValidatorTest.php

示例2: mergeConstraints

 /**
  * Merges the constraints of the given metadata into this object.
  *
  * @param ClassMetadata $source The source metadata
  */
 public function mergeConstraints(ClassMetadata $source)
 {
     foreach ($source->getConstraints() as $constraint) {
         $this->addConstraint(clone $constraint);
     }
     foreach ($source->getConstrainedProperties() as $property) {
         foreach ($source->getPropertyMetadata($property) as $member) {
             $member = clone $member;
             foreach ($member->getConstraints() as $constraint) {
                 $constraint->addImplicitGroupName($this->getDefaultGroup());
             }
             $this->addPropertyMetadata($member);
             if ($member instanceof MemberMetadata && !$member->isPrivate($this->name)) {
                 $property = $member->getPropertyName();
                 if ($member instanceof PropertyMetadata && !isset($this->properties[$property])) {
                     $this->properties[$property] = $member;
                 } elseif ($member instanceof GetterMetadata && !isset($this->getters[$property])) {
                     $this->getters[$property] = $member;
                 }
             }
         }
     }
 }
开发者ID:vomasmic,项目名称:symfony,代码行数:28,代码来源:ClassMetadata.php

示例3: extractPropertyConstraints

 /**
  * Extracts constraints from the property metaData
  *
  * @param string $property
  * @param ClassMetadata $metaData
  * @return array
  */
 protected function extractPropertyConstraints($property, ClassMetadata $metaData)
 {
     $constraints = [];
     $propertyName = $this->convertToCamelCase($property);
     if ($propertyName) {
         $propertyMetaData = $metaData->getPropertyMetadata($propertyName);
         if ($propertyMetaData) {
             $propertyOptions = array_pop($propertyMetaData);
             $constraints = $propertyOptions->getConstraints();
         }
     }
     return $constraints;
 }
开发者ID:josephjbrewer,项目名称:form-utils,代码行数:20,代码来源:MetaDataConstraintService.php


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