
4月18日にZend Frameworkのプレビュー0.1.3がリリースされました。 開発環境Zend Studioとの統合やNingなど、Symfonyを含む他のライブラリとは別の角度から興味を持っています。 Zend Frameworkの現在のバージョンをざっとみると、フレームワークとしての機能(PoEAA)の網羅性は低くい代わりに、ライブラリとしては充実しており、フレームワークという名のライブラリ集としてPEARの後継を狙っているのかな?と勝手に想像してしまいます。
さて、なんでSymfonyの開発日記でわざわざZend Frameworkの話を出したかというと、今後充実していくZend FrameworkのライブラリをSymfonyからちょっと使ってみたくなったからです。
今回は試しにZend_Service_AmazonをSymfonyから利用してみたいと思います。
sfZendFrameworkBridge AddOnのインストール
なんと、Symfonyでは、Zendのライブラリを利用する為のsfZendFrameworkBridgeというAddOnがちゃっかり用意されつつあります。が、最新安定板0.6.2にはまだ組み込まれていないため、これをSubversionからおとしてmyapp/libにインストールします。
cd apps/myapp/lib svn export http://svn.symfony-project.com/trunk/lib/addon/bridge/
設定とプログラミング
次に、設定ファイルmyapp/config/settings.ymlに以下のようなエントリを用意します。
all:
.settings:
zend_lib_dir: "/usr/local/lib/php"
aws_access_key: "ここにAmazon.comのアクセスキーを書く"zend_lib_dirは、Zend Frameworkをインストールした環境によってかえてください。私の環境では、/usr/local/lib/php/にZend.phpとZendディレクトリが配備されています。
あとは、アクションの中で以下のようにZend_Service_Amazonを使ってデータを取得し
public function executeIndex() { require_once('bridge/sfZendFrameworkBridge.class.php'); sfZendFrameworkBridge::autoload('Zend_Service_Amazon'); $amazon = new Zend_Service_Amazon(sfConfig::get('sf_aws_access_key'),"JP"); $this->items = $amazon->itemSearch(array('SearchIndex' => 'Books', 'Keywords' => 'プログラミング')); }
次に、テンプレートで表示します。
<?php foreach ($items as $item) { echo $item->Title .'<br />'; } ?>
ざっくりこんな感じです。

