甜心鸡 / robo-cdd
循环依赖检测器的Robo任务包装器
v0.1.0
2019-12-31 22:52 UTC
Requires
- php: >=7.2
- consolidation/robo: ^2.0
- sweetchuck/cdd: ^0.0
Requires (Dev)
- codeception/codeception: ^4.0
- codeception/module-asserts: ^1.1
- danielstjules/stringy: ^3.0
- phpmetrics/phpmetrics: ^2.4
- squizlabs/php_codesniffer: ^3.5
- sweetchuck/codeception-module-robo-task-runner: ^0.7
- sweetchuck/git-hooks: ^0.0
- sweetchuck/robo-git: ^0.2
- sweetchuck/robo-phpcs: ^0.1
- sweetchuck/robo-phpmd: ^0.1
- symfony/error-handler: ^5.0
- symfony/finder: ^4.0
- webmozart/path-util: ^2.3
README
@待办事项
安装
composer require --dev sweetchuck/robo-cdd
使用
RoboFile.php
<?php use Robo\Collection\CollectionBuilder; use Robo\State\Data as RoboStateData; use Sweetchuck\Robo\cdd\CircularDependencyTaskLoader; class RoboFile extends \Robo\Tasks { use CircularDependencyTaskLoader; /** * @command validate:module-dependencies */ public function validateModuleDependencies(): CollectionBuilder { return $this ->collectionBuilder() ->addCode(function (RoboStateData $data): int { $data['moduleDependencies'] = $this->collectModuleDependencies(); return 0; }) ->addTask( $this ->taskCircularDependencyDetector() ->setItemLabel('module') ->deferTaskConfiguration('setItems', 'moduleDependencies') ); } protected function collectModuleDependencies(): array { return [ 'a' => ['b'], 'b' => ['c'], 'c' => ['a'], 'd' => ['e'], 'e' => ['d'], ]; } }
CLI命令
vendor/bin/robo validate:module-dependencies
输出可能如下所示
[Circular Dependency Detector] Detect dependencies among 5 of module items
[Sweetchuck\Robo\cdd\Task\CircularDependencyDetectorTask]
c
a
b
c
e
d
e
[Sweetchuck\Robo\cdd\Task\CircularDependencyDetectorTask] Exit code 1