Doctrine_Record::save() をオーバーライドすると、Symfony 1.2 で厳密な標準エラーが発生するのはなぜですか?

StackOverflow https://stackoverflow.com/questions/943325

  •  09-09-2019
  •  | 
  •  

質問

次のモデルがあります:

class Model extends BaseModel
{
   public function save($conn = null)
   {
      if(!$this->getId())
      {

        //do stuff

     }
     return parent::save($conn);

    }
}

の API の説明に従っているような気がします。 Doctrine_Record::save() 署名 (構文エラーになる奇妙な括弧を除いて...)。

このコードを実行すると、 それはうまくいきます しかし、次の警告が表示されます。

Strict Standards: Declaration of Model::save() should be compatible with that of Doctrine_Record::save() in $ROOT/lib/model/doctrine/Model.class.php on line 6

私は通常、エラー報告を ERROR_ALL に変更し、警告のないコードを使用するようにしています。これは気になります。すべての Doctrine ソース コードをチェックアウトし、grep で「save(」を実行し、署名を次々と試しました。何もない。初めて PHP が寛容すぎて変だと言われました :-) ?

役に立ちましたか?

解決

save メソッドの正しい署名は次のようになります。

public function save(Doctrine_Connection $conn = null)

他のヒント

余談ですが:他の関数ではこのエラーが発生する可能性がありますが、上記の代わりに function($event) を使用する必要があります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top