2012-01-18 4 views
1

私はメソッドに複数のパラメータを渡すためのベストプラクティスが何であるかについての好奇心が強いです。具体的には、新しい行のコメントやパラメータを持つメソッドを呼び出す方が悪い習慣であると思われるかどうかは不思議です。新しい行のパラメータを持つメソッドを呼び出すことは悪い習慣と考えられますか?

// get json from database 
$json = $this->mysql->get_json_from_entries($this->table, // data table 
              $foo,   // column 
              $bar,   // column value 
              $this->limit); // maximum rows to retrieve 

は個人的に

// get json from database 
$json = $this->mysql->get_json_from_entries($this->table, $foo, $bar, $this->limit); 
+5

をこれらのプラクティスに従っていませんPHPは、構文解析のための言語構文のいずれかの制限がなければないパラメータ – zerkms

+2

は、私は一般的なルールを言うと思います親指の "は意味を成して、それを容易に読みやすく/分かりやすくする"。厳密で高速なコードの書式設定のルールは、特定のケースで常に最良の判断を下すべきです。 – David

+2

コーディングスタイルの議論は決して宗教的な戦争への招待ではありません。 –

答えて

3

その味の問題ではなく、通常、私はそのすべてを1行上を見てきたものから、その後、あなたはそうのようなあなたのDOCのブロックを使用します。

/** 
    * Get json from database 
    * 
    * @param $this->table object data table 
    * @param $foo string column name 
    * ...etc 
    */ 
$json = $this->mysql->get_json_from_entries($this->table, $foo, $bar, $this->limit); 
+0

私はこれがより良いスタイルだと思います。特に、4つの引数しか受け付けないOPのサンプル関数では、たぶん、より多くの引数を受け入れる関数では、行に分割する方が良い考えです(ただし、変数ごとに1行は作成しません)。すべてのメソッド呼び出しにOPのスタイルを使用している場合は、厄介な探しているPHPファイルを持つことができます。 –

+0

私のインターフェイスはDOCブロックを使用しているので、これはもっと適切でしょうか?いずれにせよ、あなたの入力に感謝します。 –

+4

docblockは関数定義の上には行きませんか? – Adam

2

とは反対に、私は本当に長い行が悪化していると思います。

あなたは、より一般的にZend Framework Coding Standard for PHPに興味があるかもしれません。

+1

+1。 Zendの標準の特定のセクション:[機能および方法の使用](http://framework.zend.com/manual/en/coding-standard.coding-style.html#coding-standard.coding-style.functions-and-methods 。使用法)。あまりにも印刷するための良い - いくつかのエディタはその幅程度に設定マージンラインを持っている理由 – cmbuckley

+0

@cbuckleyは、合意しました。 – Adam

0

私は通常のベストプラクティスの方に傾くのが好き、時には(関数の引数が多すぎる場合)、私も最初のスタイルを優先します。しかし

2物事: 機能があまりにも多くのパラメータがある場合、あなたはそれをリファクタリング検討するかもしれない、多分新しいクラスにパラメータを置くか、クラス自体 第二の実装を変更、冗長な名前の変数を宣言しようとすると、その使用方法を説明しています。ヒント:私はそれが悪い習慣だとは思わないが、あなたは間違いなくあなたのインターフェイスをドキュメント化する必要があります:)

関連する問題