tasuku43/dependency-analyzer

检查PHP类的依赖关系

0.1.0 2022-06-18 07:07 UTC

This package is auto-updated.

Last update: 2024-09-18 12:02:05 UTC


README

概览

分析特定类的依赖关系。我们希望这将对依赖库的主要版本升级有所帮助。例如,如果您知道某个类中存在破坏性变更,您可以直接看到项目中哪些类受到影响。结合dependebot等库升级工具,也可以在生成的PR中对受影响的类进行注释。

安装

通过Composer

composer require --dev tasuku43/dependency-analyzer

使用方法

使用laravel/laravel作为示例项目以检查其操作。

$ tree -L 1
.
├── README.md
├── app
├── artisan
├── bootstrap
├── composer.json
├── composer.lock
├── config
├── database
├── lang
├── package.json
├── phpunit.xml
├── public
├── resources
├── routes
├── storage
├── tests
├── vendor
└── webpack.mix.js

11 directories, 7 files

检查依赖于指定命名空间的所有类列表。

$ ./vendor/bin/dependency-analyzer analyse --path app --pattern "Illuminate\Support"
 [============================] 100%
 ---------------- ------------------------------------
  Depender         App\Providers\AppServiceProvider
 ---------------- ------------------------------------
  Dependent List   Illuminate\Support\ServiceProvider
 ---------------- ------------------------------------

 ---------------- -----------------------------------
  Depender         App\Providers\AuthServiceProvider
 ---------------- -----------------------------------
  Dependent List   Illuminate\Support\Facades\Gate
 ---------------- -----------------------------------

 ---------------- ----------------------------------------
  Depender         App\Providers\RouteServiceProvider
 ---------------- ----------------------------------------
  Dependent List   Illuminate\Support\Facades\RateLimiter
                   Illuminate\Support\Facades\Route
 ---------------- ----------------------------------------

 ---------------- ----------------------------------------
  Depender         App\Providers\BroadcastServiceProvider
 ---------------- ----------------------------------------
  Dependent List   Illuminate\Support\Facades\Broadcast
                   Illuminate\Support\ServiceProvider
 ---------------- ----------------------------------------

 ---------------- ------------------------------------
  Depender         App\Providers\EventServiceProvider
 ---------------- ------------------------------------
  Dependent List   Illuminate\Support\Facades\Event
 ---------------- ------------------------------------

 ---------------- ---------------------------------------------
  Depender         App\Http\Middleware\RedirectIfAuthenticated
 ---------------- ---------------------------------------------
  Dependent List   Illuminate\Support\Facades\Auth
 ---------------- ---------------------------------------------


 [OK] Found 6 dependers

检查依赖于指定类的一个类列表。

$ ./vendor/bin/dependency-analyzer analyse --path app --pattern "Illuminate\Support\ServiceProvider"
 [============================] 100%
 ---------------- ------------------------------------
  Depender         App\Providers\AppServiceProvider
 ---------------- ------------------------------------
  Dependent List   Illuminate\Support\ServiceProvider
 ---------------- ------------------------------------

 ---------------- ----------------------------------------
  Depender         App\Providers\BroadcastServiceProvider
 ---------------- ----------------------------------------
  Dependent List   Illuminate\Support\ServiceProvider
 ---------------- ----------------------------------------


 [OK] Found 2 dependers

按“依赖类”分组检查依赖于指定类的类列表。

$ ./vendor/bin/dependency-analyzer analyse --path app --pattern "Illuminate\Support\ServiceProvider" --group-by dependent
 [============================] 100%
 --------------- ----------------------------------------
  Dependent       Illuminate\Support\ServiceProvider
 --------------- ----------------------------------------
  Depender List   App\Providers\AppServiceProvider
                  App\Providers\BroadcastServiceProvider
 --------------- ----------------------------------------


 [OK] Found 1 dependents

许可证

MIT许可证(MIT)。更多信息请参阅LICENSE