Seditio Source
Root |
./othercms/croogo-4.0.7/vendor/phpspec/prophecy/src/Prophecy/PhpDocumentor/ClassTagRetriever.php
<?php

/*
 * This file is part of the Prophecy.
 * (c) Konstantin Kudryashov <ever.zet@gmail.com>
 *     Marcello Duarte <marcello.duarte@gmail.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Prophecy\PhpDocumentor;

use
phpDocumentor\Reflection\DocBlock\Tags\Method;
use
phpDocumentor\Reflection\DocBlockFactory;
use
phpDocumentor\Reflection\Types\ContextFactory;

/**
 * @author Théo FIDRY <theo.fidry@gmail.com>
 *
 * @internal
 */
final class ClassTagRetriever implements MethodTagRetrieverInterface
{
    private
$docBlockFactory;
    private
$contextFactory;

    public function
__construct()
    {
       
$this->docBlockFactory = DocBlockFactory::createInstance();
       
$this->contextFactory = new ContextFactory();
    }

   
/**
     * @param \ReflectionClass $reflectionClass
     *
     * @return Method[]
     */
   
public function getTagList(\ReflectionClass $reflectionClass)
    {
        try {
           
$phpdoc = $this->docBlockFactory->create(
               
$reflectionClass,
               
$this->contextFactory->createFromReflector($reflectionClass)
            );

           
$methods = array();

            foreach (
$phpdoc->getTagsByName('method') as $tag) {
                if (
$tag instanceof Method) {
                   
$methods[] = $tag;
                }
            }

            return
$methods;
        } catch (\
InvalidArgumentException $e) {
            return array();
        }
    }
}