カスタムフィルタの作成

取得したTweetsから必要なものを抽出するための仕組みとして、Tuitter_Filterがあります。

頻繁に使うようなものは、自分でカスタムフィルタを作ってしまうと便利です。

カスタムフィルタは、Tuitter_Filter_Interfaceを実装することで作成できます。

1つのメソッドを実装するだけ

フィルタは、checkという1つのメソッドを実装するだけで作成可能です。

このメソッドにはTuitter_Tweetオブジェクトが渡されるので、抽出対象とするのであれば TRUE、そうでなければ FALSE を返すだけです。

HashTagの実装例

例として、Tuitter_Filter_HashTagの実装を見てみます。

コンストラクタで複数のタグを受け取り、その時点で正規表現を作ってしまっています。

その後、checkメソッドで評価をして返すだけの仕組みであることが、わかると思います。

Tuitter::load('Filter/Interface.php');

class Tuitter_Filter_HashTag implements Tuitter_Filter_Interface
{
  private $_exp;

  public function __construct()
  {
    $tags = func_get_args();
    if(!$tags) trigger_error('Missing arguments.');
    $esc = array();
    foreach($tags as $tag){
      $esc[] = preg_quote($tag);
    }
    $this->_exp = '/#('.implode('|', $esc).')\W/i';
  }

  public function check(Tuitter_Tweet $tweet)
  {
    return (preg_match($this->_exp, $tweet->text.' ') ? true : false);
  }
}