mirror of
https://github.com/rectorphp/rector.git
synced 2025-02-24 19:53:14 +01:00
* decouple CurrentAndParentClassMethodComparator * fix param reflections * [rector] fix param reflections * [cs] fix param reflections * composer: bump assert * [rector] composer: bump assert * [cs] composer: bump assert * static fixes Co-authored-by: rector-bot <tomas@getrector.org>
Simple PHP Doc Parser
Simple service integration of phpstan/phpdoc-parser, with few extra goodies for practical use
1. Install
composer require rector/simple-php-doc-parser
2. Register Bundle
Register bundle in your project:
// app/bundles.php
return [
Rector\SimplePhpDocParser\Bundle\SimplePhpDocParserBundle::class => [
'all' => true,
],
];
or via Kernel:
use Symfony\Component\HttpKernel\Kernel;
use Symfony\Component\HttpKernel\Bundle\BundleInterface;
use Rector\SimplePhpDocParser\Bundle\SimplePhpDocParserBundle;
final class AppKernel extends Kernel
{
/**
* @return BundleInterface[]
*/
public function registerBundles(): array
{
return [new SimplePhpDocParserBundle()];
}
}
3. Usage
Required services Rector\SimplePhpDocParser\SimplePhpDocParser
in constructor, where you need it, and use it:
use Rector\SimplePhpDocParser\SimplePhpDocParser;
final class SomeClass
{
/**
* @var SimplePhpDocParser
*/
private $simplePhpDocParser;
public function __construct(SimplePhpDocParser $simplePhpDocParser)
{
$this->simplePhpDocParser = $simplePhpDocParser;
}
public function some()
{
$docBlock = '/** @param int $name */';
/** @var \PHPStan\PhpDocParser\Ast\PhpDoc\PhpDocNode $phpDocNode */
$phpDocNode = $this->simplePhpDocParser->parseDocBlock($docBlock);
// param extras
/** @var \PHPStan\PhpDocParser\Ast\Type\TypeNode $nameParamType */
$nameParamType = $phpDocNode->getParamType('name');
/** @var \PHPStan\PhpDocParser\Ast\PhpDoc\ParamTagValueNode $nameParamTagValueNode */
$nameParamTagValueNode = $phpDocNode->getParam('name');
}
}