PHPのフレームワーク CakePHP

前回は「風俗サイトのSEOについて」と題して SEO について書いてみましたが、このネタはどうも愚痴っぽくなっていかんですね。というわけでもっとテクニカルな話題にふれてみます。

以前のことになりますが、 PHP の実行エンジンを開発している Zend より Zend Framework 正式版がリリースされた時、 これが PHPフレームワークデファクトスタンダードになるであろうと予測したのですが、いざ自分でフレームワーク使うときにではこれを選ぶかというとそれは別の話で、規模的にも簡易なものがよかったのでとりあえず CakePHP を試しに使っています。

この CakePHP というフレームワーク、使いやすいと評判の Ruby on Rails をお手本にしているだけあって、こざっぱりしていて風通しがいい印象です。外部アプリを取り込んで使うことも簡単なので、たとえば PHP テンプレートシステムのデファクトである Smarty を使ってページ出力をしたり、PEAR ライブラリを使ったりと、手法を組み合わせることができるのも魅力です。

外部の XML を読み込んでデータとして使いたかったので、使用可能なモデルに XML が無いかと探してみたのですが、RSSはあっても XML は残念ながら無し。CakePHP のバージョン 1.2 にはヘルパーとして XML が入っているのですがこれはヘルパーなのでおそらく出力用のモジュールのようです。

いろいろ探したのですが見つからなかったので、 CakePHPRSS エントリを取り込んで使用する方法「CakePHPでRSSフィードの読み込み」というエントリを参考に、この RSS モデルである rss.php を改造して xml モデルを作成しました。XML のパースには、最初は外部ライブラリとして PEARXML パーサを使おうかと考えましたが、「XMLをパースしてArrayに」こんなエントリがあったのでこれを組み込んでみました。

このモデルをコントローラの中で指定してこんな感じで使います。

class SamplesController extends AppController
{
	var $name = 'Samples';
	var $uses = array('Xml');

	function index()
	{
		$entrys = $this->Xml->findAll(/* XML の URL */);
		$this->set('xmldata', $entrys);
	}
}

一度モデルを作っておけば後はお手軽に URL を指定するだけです。これは楽ですね。

風俗店情報ビッグデザイア