0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

deptracのバージョンアップ(0.11.1 → 1.0.2)

Last updated at Posted at 2024-02-04

概要

アーキテクチャ品質保存ツールdeptracのバージョンアップ(0.11.1 to 1.0.2)を行ったので、ツール概要と修正箇所をまとめる

どんなツール?

Deptracは、PHPのための静的コード解析ツールであり、プロジェクト内のアーキテクチャの意思決定をコミュニケートし、視覚化し、強制するのに役立ちます。クラスに対してアーキテクチャのレイヤーと、それらに適用するべきルールを自由に定義できます。
たとえば、Deptracを使用して、プロジェクト内のバンドル/モジュール/拡張がお互いに本当に独立していることを確認し、再利用しやすくすることができます。
Deptracは、CIパイプラインで使用でき、プルリクエストが定義したアーキテクチャルールを違反していないかどうかを確認できます。オプションのGraphvizフォーマッタを使用すると、レイヤー、ルール、および違反を視覚化できます。

  • 要はクリーンアーキテクチャのレイヤーや依存関係、命名規則について静的解析してくれるツール

実行コマンド

vendor/bin/deptrac analyse

デフォルトではルートディレクトリのdeptrac.ymlを設定ファイルとして読み込む。それ以外のファイルを設定ファイルとして読み込みたい場合は--config-fileオプションを付与する

例:vendor/bin/deptrac analyse --confifg-file=lib/deptrac.yml

主要概念

  • layers
    • 定義するクラスのグループ
  • rulesets(ルールセット)
    • レイヤーで通信できるかを示す。つまりそのレイヤーで許可されているクラスはどれかを指定する

例えば以下のような層構造を指定したいときは下記のように記述する

  • コントローラはサービスにアクセスできますが、リポジトリにはアクセスできない
  • サービスはリポジトリにアクセスできますが、コントローラにはアクセスできない
  • リポジトリはサービスおよびコントローラにアクセスしてはいけない
# deptrac.yaml
deptrac:
  paths:
    - ./examples/ControllerServiceRepository1/
  exclude_files: ~
  layers:
    -
      name: Controller
      collectors:
        -
          type: className
          value: .*MyNamespace\\.*Controller.*
    -
      name: Repository
      collectors:
        -
          type: className
          value: .*MyNamespace\\.*Repository.*
    -
      name: Service
      collectors:
        -
          type: className
          value: .*MyNamespace\\.*Service.*
  ruleset: 
    Controller:
      - Service
    Service:
      - Repository
    Repository: ~
  • paths→検証ディレクトリのパス
  • exclude_files→対象外のファイル
  • layers→それぞれの層を指定する
    • collectors配下の条件を満たすものに関して、nameで指定した値を一つの層として定義する
    • 例:src/Client 以下のディレクトリに関して「Client」層と定義する
  layers:
    - name: Client
      collectors:
        - type: directory
          regex: src/Client/
  • ruleset→layersで定義した層の通信の許可を確認する
    • 上記の例では、Conroller→Service→Repositoryの通信の依存の構造を示す

アップグレードの影響

  • 0.11.1 to 1.0.2にアップデートするにあたり、以下のようにYAMLファイルを修正
    • pathsexclude_fileslayersrulesetdeptrac:配下に移動する
    • --config-fileオプションの付与
      • デフォルトではルートディレクトリの./deptrac.ymlを設定ファイルとして読み込むようになった。デフォルトのファイル名を設定ファイルとしては指定していないので、--config-fileオプションでファイルパスを指定するようにした
  • 参考:アップグレードガイド

参考資料

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?