S2Ethnaを使って見る
以前、Ethnaを使ったプロジェクトを作ったころには
PDOのラッパーしたDBレイヤー自作してたけど*1
結局、SQL書くことには変わりないわけで・・・
最近はJavaのTorqueやらhibernateを触る機会があったり
RailsのARを使ってると、簡単なSQLなんて書くのも面倒になってくるわけで。。
MDB2もORMだけども結局、PDOの相手にはならんので・・・
PHP5.1.4でPDOとPEAR::DB, MDB2のベンチマーク
PDO使ったORMでEthnaと相性いいもんないかな〜って探してたら
S2Ethnaが昨日リリースされたので早速使って見る。
だいこんの日々 : S2Ethna v0.2リリースします
そもそも
S2って何のことやねんっ!?
The Seasar Project
DIとAOPをサポートした軽量コンテナseasarプロジェクトのプレフィックス
DBレイヤーにS2Dao.PHP5を利用してるってこと
超約すると
ようするに、書き方覚えればとっても楽できるってこと♪
早速インストールしてみる
S2Ethna v0.2からサンプル付きのソースをダウンロードする
他、依存ライブラリは以下の通り
・Ethna(v2.3.2推奨) ・PEAR ・Smarty ・S2Container.PHP5(v1.1.3推奨、v1.2.0RC1可) ・Cache_Lite(条件付き必須) S2Dao.PHP5 を使用する場合には、以下のライブラリが必要です。 ・S2Dao.PHP5(v1.1.2推奨、v1.2.0beta1不可) ・PDO データベースインポートツールを使用する場合には、以下のライブラリが必要 です。 ・PEAR::DB
実行環境は以下の通り
WindowsXP SP2 Apache2.2.4 PHP 5.2.2 MySQL 5.0.37
S2Container.PHP5のインストール
S2Container.PHP5(v1.1.3推奨、v1.2.0RC1可)
というわけで1.1.3を使うことにする
>pear install http://s2container.php5.seasar.org/download/S2Container-1.1.3.tgz downloading S2Container-1.1.3.tgz ... Starting to download S2Container-1.1.3.tgz (103,629 bytes) .........done: 103,629 bytes Did not download optional dependencies: pear/Cache_Lite, use --alldeps to download automatically pear/S2Container can optionally use package "pear/Cache_Lite" install ok: channel://pear.php.net/S2Container-1.1.3
S2Containerは内部でCache_Liteが(デフォルト設定では)使われるらしい
○S2Container_CacheSupport
http://s2container.php5.seasar.org/extension.html#cache-support
S2Container_CacheSupport では、S2ContainerFactory で生成される S2Container インスタンスの serialize データと、S2AOP で生成されるの AopProxy コードをキャッシュします。S2Container_CacheSupportの実装クラスとして、 S2Container_PearCacheLiteSupport、S2Container_MemcacheSupport、 S2Container_ZendCacheSupport があります。どの CacheSupport クラスを使用するかは、S2CONTAINER_PHP5_CACHE_SUPPORT_CLASS 定数で指定します。デフォルトは、S2Container_PearCacheLiteSupport です。
と他、ライブラリのサポートも行われているが
- MemcacheSupport
- ZendCacheSupport
ナンノコッチャ。。。。orz*2
無難にPEAR::CacheLiteを利用することにして追加インストール
>pear install Cache_Lite downloading Cache_Lite-1.7.2.tgz ... Starting to download Cache_Lite-1.7.2.tgz (29,055 bytes) .........done: 29,055 bytes install ok: channel://pear.php.net/Cache_Lite-1.7.2
S2Dao.PHP5のインストール
>pear install http://s2dao.php5.seasar.org/files/S2Dao-1.1.2.tgz downloading S2Dao-1.1.2.tgz ... Starting to download S2Dao-1.1.2.tgz (93,051 bytes) .....................done: 93,051 bytes install ok: channel://pear.php.net/S2Dao-1.1.2
早速、動かしてみる
>pear list INSTALLED PACKAGES, CHANNEL PEAR.PHP.NET: ========================================= PACKAGE VERSION STATE Cache_Lite 1.7.2 stable DB 1.7.13 stable PEAR 1.5.1 stable S2Container 1.1.3 stable S2Dao 1.1.2 stable
環境によって依存性を持たせたくないのでlib以下に依存ライブラリを配置した。
同様にSmartyもSmarty/smarty.class.phpでアクセスできる形で追加する。
用意できたパッケージごと公開ディレクトリに配置して確認してみると・・・
おおー
データベースインポートツール(デモンストレーション版) | S2Ethna v0.2で既存のDBから定義も取得できるし素敵やー
example| S2Ethna v0.2を作りながら勉強しまーす。
つづく