メモ帳++でコード化して崇高なことを何年も幸せにしてから、私はPHP IDEを試してみることを勧めました。私はphpStormを試しているし、それはいいようです。コードの補完と文書化は素晴らしい機能ですが、魔法を使うときはうまくいきません。 phpStormに魔法の仕組みがどういうものなのかを理解させるための回避策はありますか?IDEのマジック(_callと_callStatic)メソッドを文書化するには
私たちの状況はこのようなものです:
abstract class a {
public static function __callStatic($method,$args)
{
if(strpos($method,"get_by_") === 0)
{
//do stuff
} elseif(strpos($method,"get_first_by_") === 0) {
//do stuff
} elseif($method == "get_all") {
//do stuff
}
}
}
class b extends a {
// some more stuff
}
b::get_by_user_id(27);
b::get_first_by_id(156);
b::get_all();
マジックcallStatic方法は、私たちは、関数呼び出しを構成する1つの以上の引数を経由してオブジェクトのコレクションを取得することができます。
これらのケースでは@methodステートメントが使用されていますが、phpStormはこれらのステートメントのうちの最初のものだけを取り上げています。さらに、戻り値の型を混合型に設定できるのは、これが呼び出されたクラス(私の例ではb)として設定できることが望ましいからです。
感謝と感謝の意を表します。
WHY WOULD _ANYONE_「_call」を無視すると、良いアイデアとなると思いますか? –
正気の人がこの質問を見つけた場合、ブライアンのコメントを+1してください。マジックメソッドは、すべての目的と目的のためにあります:IDEではなく(マジックメソッドをデバッグするようにしてください)、リファクタリングに弾力を持たずに(ドキュメンテーションを(n)[パラメータ|前提条件| (元気なソフトウェアでリファクタリングを試みることさえ考えないでください)、LAZY(最後は意見として解釈されるかもしれません)。 –
-1 @ LukeA.Leberによるコメントの意見には、ビジョンの欠如が示されています。マジックメソッドはコードを少なくする方法ではありませんが(マジックメソッドを使用している場合)、マジックメソッドを使用すると、単純な方法では可能でないか、あまりにも複雑なので、書く価値はありません。また、PHPDocを使用すると完全にIDEに対応します。 ほとんどの場合、マジックメソッドは必要ありませんが、必要なときには(PHPでは)置き換えられません。それらを使用して非常に構造化された方法で使用される場合、完全な有効なソリューションです。 – MikeSchinkel