jerowork/class-dependencies-parser
最新稳定版本:0.5.1
Composer 安装命令:
composer require jerowork/class-dependencies-parser
包简介
Parse all dependencies (FQN) used in an object (e.g. class, trait, interface)
README 文档
README
Parse all dependencies (FQN) used in a class (e.g. class, trait, interface, enum).
Installation
Install via Composer:
composer require jerowork/class-dependencies-parser
Usage
use Jerowork\ClassDependenciesParser\PhpParser\NodeTraverserFactory; use Jerowork\ClassDependenciesParser\PhpParser\PhpParserClassDependenciesParser; use PhpParser\ParserFactory; // Setup parser $parser = new PhpParserClassDependenciesParser( (new ParserFactory())->create(ParserFactory::PREFER_PHP7), new NodeTraverserFactory(), ); // Parse file $classDependencies = $parser->parse('/Path/To/file.php'); // Output dependencies print_r( $classDependencies->getDependencyList(), ); // This will output e.g.: [ 'Some/Namespace/Class', 'Another/Namespace/Trait', // ... ]
DI service definition
As a good practice we should always 'program to interfaces, not implementations', you should add this to your DI container.
PSR-11 Container example:
use Jerowork\ClassDependenciesParser\ClassDependenciesParser; use Jerowork\ClassDependenciesParser\PhpParser\NodeTraverserFactory; use Jerowork\ClassDependenciesParser\PhpParser\PhpParserClassDependenciesParser; use PhpParser\ParserFactory; return [ ClassDependenciesParser::class => static function (ContainerInterface $container): ClassDependenciesParser { return new PhpParserClassDependenciesParser( (new ParserFactory())->create(ParserFactory::PREFER_PHP7), new NodeTraverserFactory(), ); }, ];
Symfony YAML-file example:
services: _defaults: autowire: true autoconfigure: true Jerowork\ClassDependenciesParser\ClassDependenciesParser: class: Jerowork\ClassDependenciesParser\PhpParser\PhpParserClassDependenciesParser Jerowork\ClassDependenciesParser\PhpParser\NodeTraverserFactory: ~ PhpParser\ParserFactory: ~ PhpParser\Parser: factory: ['@PhpParser\ParserFactory', 'create'] arguments: $kind: 1
统计信息
- 总下载量: 263
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 2
- 点击次数: 1
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2023-02-23