メソッドの一致条件

一致の定義は、インフォメーションポイントとしてキャプチャする値に関連付けられたメソッドを指定します。一致の定義では、メソッドを必ず指定しますが、メソッドを含むクラスと絞り込み用の一致条件を指定することもできます。一致条件によって、メソッドパラメータの値、戻り値、または呼び出されたオブジェクトの戻り値を検査できます。

以下のテンプレートを使って一致の定義を作成します。

{
"probe": {
"phpDefinition": {
"classMatch": {
"type": "MATCHES_CLASS",
"classNameCondition": {
"type": "EQUALS",
"matchStrings": [
"<class name>"
]
}
},
"methodMatch": {
"methodNameCondition": {
"type": "EQUALS",
"matchStrings": [
"<method name>"
]
}
}
}
}
}

次の方法で JSON オブジェクトを編集します。

  • classMatchはオプション。一致するクラスを指定しない場合は、phpDefinition オブジェクトから classMatch オブジェクトを削除。
  • クラスの一致を使用する場合、classNameCondition 一致文字列の値をクラス名に設定。
    • クラスは、インスタンス化され呼び出されたファイルとは別のファイルとして定義されていること。
    • クラス名がネームスペースに定義される場合、エスケープバックスラッシュでネームスペースのバックスラッシュをエスケープ。
  • methodMatch が必要です。methodNameCondition 一致文字列の値をメソッド名に設定。

PHPのインフォメーションポイントでは、以下の値が必要です。

  • classMatch 次のように入力します。 MATCHES_CLASS
  • classNameCondition 次のように入力します。 EQUALS
  • methodNameCondition 次のように入力します。 EQUALS

たとえば、以下の JSON はクラス名が CheckoutManager、メソッド名が processPayment と等しいクラスにインフォメーションポイントを作成します。

{
"probe": {
"phpDefinition": {
"classMatch": {
"type": "MATCHES_CLASS",
"classNameCondition": {
"type": "EQUALS",
"matchStrings": [
"Bundy\\ShoesBundle\\Entity\\CheckoutManager"
]
}
},
"methodMatch": {
"methodNameCondition": {
"type": "EQUALS",
"matchStrings": [
"processPayment"
]
}
}
}
}
}

主にメソッドの KPI メトリックをキャプチャする目的でインフォメーションポイントを作成する場合は、メソッドのクラスを定義します。しかし、コードメトリックを実装するためにインフォメーションポイントを作成する場合は、一致するメソッド名を指定するだけで済みます。

次の例は、メソッドの呼び出し回数を追跡するメソッド一致を示しています。

{
"probe": {
"phpDefinition": {
"methodMatch": {
"methodNameCondition": {
"type": "EQUALS",
"matchStrings": [
"deleteCartItems"
]
}
}
}
}
}