获取set属性中参数的类型



使用Symfony 2框架,我从数据库中获得了带有注释的实体。

在我的特殊情况下,我使用实体,但我不知道我使用的是哪一个。

假设我有一个实体对象$entity

$class = get_class($entity);
$reflect = new ReflectionClass($class)
$properties = $reflect->getProperties();
foreach($properties as $property) {
   $entity->{'set' .ucfirst(strtolower($property))}($some_value);
   ....
}

有没有办法知道每个属性需要什么类型的参数?使用注释?

理论上你可以这样做,但我不知道它会对性能产生什么影响。你可以使用条令注释阅读器。

下面是一个你可以做什么的代码示例

use DoctrineCommonAnnotationsAnnotationReader;
$class = get_class($entity);
$reflect = new ReflectionClass($class)
$properties = $reflect->getProperties();
$annotationReader = new AnnotationReader();
foreach($properties as $property) {
    $reflectionProperty = new ReflectionProperty($class, $property);
    $propertyAnnotations = $annotationReader->getPropertyAnnotations($reflectionProperty);
    var_dump($propertAnnotations);
    ....
}

除此之外,您可能还需要查看Symfony ProppertyAccisor,以获取和/或设置特定的对象值。http://symfony.com/doc/current/components/property_access/introduction.html

相关内容

  • 没有找到相关文章

最新更新