本文整理汇总了PHP中Symfony\Component\PropertyAccess\PropertyAccess::setValue方法的典型用法代码示例。如果您正苦于以下问题:PHP PropertyAccess::setValue方法的具体用法?PHP PropertyAccess::setValue怎么用?PHP PropertyAccess::setValue使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Symfony\Component\PropertyAccess\PropertyAccess
的用法示例。
在下文中一共展示了PropertyAccess::setValue方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: create
/**
* {@inheritDoc}
*/
public function create(array $definition = null)
{
$identity = new $this->classFQN();
if (!empty($definition)) {
$class = $this->getIdentityReflection($identity);
$methods = $class->getMethods(\ReflectionMethod::IS_PUBLIC);
$properties = $class->getproperties();
foreach ($methods as $method) {
$annotations = $this->reader->getMethodAnnotations($method);
foreach ($annotations as $annotation) {
switch (true) {
case $annotation instanceof Identity:
if (!empty($annotation->name) && $annotation->type == 'setter' && isset($definition[$annotation->name])) {
$method->invoke($identity, $definition[$annotation->name]);
}
break;
}
}
}
foreach ($properties as $property) {
$annotations = $this->reader->getPropertyAnnotations($property);
foreach ($annotations as $annotation) {
switch (true) {
case $annotation instanceof Identity:
if (empty($annotation->name)) {
$annotation->name = $property->getName();
}
if (isset($definition[$annotation->name])) {
$this->accessor->setValue($identity, $property->getName(), $definition[$annotation->name]);
}
break;
}
}
}
}
return $identity;
}