Pingとは
WordPressなどのブログツールでは、その殆どで実装されている機能に「Ping」があります。
Ping(ピン)はブログにおいて、XML-RPCに基づくプッシュによりサーバに更新と変更内容を伝えるためのメカニズムである。今日では、ほとんどのブログオーサリングツールは、ブロガーが記事を追加したり編集した際に自動的にPing送信を行う。
出典:Wikipedia
この機能をCakePHPで独自機能として実装する場合の手順を紹介します。
利用するライブラリ
Ping機能を実装するにために、IXRライブラリーを使って実装していきます。
このライブラリを利用することで、XML-RPCに基づく形式に手軽に変換することが出来る優れたライブラリーです。
■Incutio PHP XML-RPC library (IXR)
https://github.com/irazasyed/php-ixr
ダウンロード後、「IXR_Library.php」をCakePHPのアプリケーション側「Vendor」ディレクトリに配置します。
「AppController.php」へ記述
「AppController.php」へ処理を記述していきます。
ここでは「ping()」としてメソッド名を設定していますので、各自任意のメソッド名にしてもらえればと思います。
public function ping($title=NULL,$url=NULL) {
require_once(APP.'Vendor'.DS.'IXR_Library.php');
$sendTo=array(
【ここにはPingサーバ先のURLを記述】
);
if(!empty($title)&&!empty($url)){
foreach($sendTo as $send){
$client = new IXR_Client($send);
$client->query('weblogUpdates.ping',$title,$url);
}exit;
return true;
}
return false;
}
上記のコードを記述後、任意のコントローラー内で呼び出すと指定されたPINGサーバへ更新PINGを送信されます。
引数1の「$title」には引数2に指定するURL先のページタイトルをセットすることで、Ping先のサーバーへPing送信される仕組みです。
Pingサーバ先について
更新Pingを受け付けているサーバーは常に最新のものはなく、急に無くなったり、作られたりと変わっていきます。
そのため、ここで紹介するサーバー先は参考として利用して頂ければと思います。
http://blogsearch.google.co.jp/ping/RPC2http://blogsearch.google.com/ping/RPC2
http://ping.dendou.jp/
http://ping.freeblogranking.com/xmlrpc/
http://ping.feedburner.com/
http://ping.rss.drecom.jp/http://rpc.weblogs.com/RPC2
http://rpc.pingomatic.com/http://rpc.reader.livedoor.com/pinghttp://api.my.yahoo.co.jp/RPC2
http://api.my.yahoo.com/RPC2