2016-10-27 6 views
0

こんにちは、クラスの先頭にあるクラスにいくつかの関数があることを示すために、実際の関数のクラスでいくつかのエイリアス関数が必要なような気がします。 私がしたいことは以下の通りです。PHPでエイリアス関数を作成する方法

class foo { 

    public function foo(); 
    public function boo(); 
    //alias functions to show there are foo and boo functions somewhere below. 

    public function foo(){//real function 
     //some code here 
    } 
    public function boo(){//real function 
     //some code here 
    } 
} 

私は以前、この種のクラスを見ましたが、もう見つけられません。

助けてください。

+0

なぜ?これはあなたが関数が何と呼ばれているか知っていますか?それはそこにあることを覚えていますか?もしそうなら、私たちがコメントを持っているのです。 – junkfoodjunkie

+0

@junkfoodjunkie私がこれをやりたい理由は、次の開発者がクラスを簡単に理解するためです。本の目次を見るのと同じです。 –

+0

次に、クラスの使用方法を説明するコメントを書いてください。しかし、クラスがそれほど複雑であれば、すべてをやり直すことについて考えるかもしれません。しかし、関数を宣言してはいけません - 何が良いのでしょうか?なぜ彼らがそこにいるのか説明する必要があるでしょう - 説明がなければ、新しいdecはそれが空の関数だと思うでしょう、まだ実装されていないかもしれません。コメントを使用します。クラスが何をしているのか、その機能が何をしているのかを説明してください。 '#foo foo()はfooでいくつかのバーをフーすることができます #function boo()はあなたにいくつかのフーを呼び出せます。 – junkfoodjunkie

答えて

2

あなたが見たものはInterfaceでした。その目的は、クラスのマップのソートを作成することです。そのクラスを実装するクラスは、少なくとも必要なメソッドを持つことがわかります。

interface myInterface(){ 
    // "alias functions" 
    public function foo(); 
    public function boo(); 
} 

class foo implements myInterface{ 
    // "real functions" 
    public function foo(){} 
    public function boo(){} 
} 

phpDocあなたが探しているものに近いかもしれません。これは、ほとんどのIDEがクラス内のメソッドを読み込み、自動補完するために使用する一種のコメント構文です。たとえば、Netbeansでは、IDEはパラメータを含むメソッドの説明と、提供するその他の情報を提供します。ここでEasyImageソースコードからの例です:

/** 
* Add perspective to an image 
* @param float $gradient - gradient of perspective 
* @param type $rightdown - angle 
* @return \EasyImage 
*/ 
public function perspective($gradient = 0.85, $rightdown="top"){ ... } 

機能の説明とパラメータを示し、NetBeansでこの機能を使用する:

Autocomplete in Netbeans

+0

これはいくつかのケースでは有用かもしれませんが、私はまだOPが説明した問題のより良いアプローチは、文書を記述し、コメントし、実際にコードが理解できることを確認することだと思います。 :) – junkfoodjunkie

+0

あなたのフィードバックを念頭に置いて、@ junkfoodjunkieを編集しました。 –

+0

多くの感謝!インターフェイスは私が探していたものでした! –

関連する問題