SEO対策ならSEO knowledge

TOPプログラムPHP>symfony

symfony関数リファレンスisFirstCallの使い方(sfFilterクラス)

※この記事はsymfony 1.0のものです。

構文

(filter内で)

$this->isFirstCall()

引数

なし

意味

これがsfFilterインスタンスへの最初の呼び出しなら真を返す。

・・・というのが想定されている機能のようですが、"最初の呼び出しですか?"という問いかけの相手はこのメソッド自身のようで、たとえfilterのexecute()メソッドの呼び出しが初めてであっても、isFirstCall()を複数回呼び出すと2度目の呼び出し以降はfalseを返します

つまり、以下のようなコードを書くと、このフィルタの処理は実行されなくなってしまうので注意しましょう。

class myFilter extends sfRenderingFilter
{ 

  public function execute($filterChain)
  {
    $logger = $this->getContext()->getLogger();

    //ここではtrueを返します
    $logger->debug($this->isFirstCall()?'最初の呼び出し':'2度目以降の呼び出し');

    //ここでは常にfalseを返してしまいます
    if($this->isFirstCall()){
      //このブロックの処理が実行される事はありません

      //...実際の処理...
    }
    $filterChain->execute();
  }
}

使いどころ

フィルタの中で定型文的に使うのが普通です。

The Definitive Guide to symfonyの翻訳(symfony1.0版) 第6章 - コントローラーレイヤーの内側

 このエントリをはてなブックマークに登録 このエントリをlivedoorクリップに登録 Yahoo!ブックマークに登録 このエントリを del.icio.us に登録 Google Bookmarks に追加
[ 新規 | 編集 | 削除 | 凍結 ]    [ 新着 | 履歴 | ヘルプ ]

この記事に関連する求人

携帯サイト

携帯サイトはこちら

QRコード

http://it.kndb.jp/m

記事を書く

関連エントリ

関連ブックマーク

ページ上部へ