Zend FrameworkのライブラリをSymfonyから利用する

right

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 />';
}
?>

ざっくりこんな感じです。

Leave a Reply

You must be logged in to post a comment.