Ouzo\Injection\Annotation\DocCommentExtractor::getMetadata PHP Method

getMetadata() public method

public getMetadata ( $instance )
    public function getMetadata($instance)
    {
        $class = new ReflectionClass($instance);
        $properties = $class->getProperties();
        $annotations = array();
        foreach ($properties as $property) {
            $doc = $property->getDocComment();
            if (Strings::contains($doc, '@Inject')) {
                if (preg_match("#@var ([\\\\A-Za-z0-9]*)#s", $doc, $matched)) {
                    $className = $matched[1];
                    $name = $this->extractName($doc);
                    $annotations[$property->getName()] = array('name' => $name, 'className' => $className);
                } else {
                    throw new InjectorException('Cannot @Inject dependency. @var is not defined for property $' . $property->getName() . ' in class ' . $class->getName() . '.');
                }
            }
        }
        return $annotations;
    }
DocCommentExtractor