/**
* @param PropertyNode $node
* @param ReflectionClass $declaringClass
* @return ReflectionProperty
*/
public static function createFromNode(PropertyNode $node, ReflectionClass $declaringClass)
{
$prop = new self();
$prop->name = $node->props[0]->name;
$prop->declaringClass = $declaringClass;
if ($node->isPrivate()) {
$prop->visibility = self::IS_PRIVATE;
} elseif ($node->isProtected()) {
$prop->visibility = self::IS_PROTECTED;
} else {
$prop->visibility = self::IS_PUBLIC;
}
$prop->isStatic = $node->isStatic();
$prop->docBlockTypes = (new FindPropertyType())->__invoke($node, $prop);
return $prop;
}