Zend Framework Programmer's Reference Guide 超流し読み

  • FAQやコーディング規約は読んでません。
  • 超流し読みなので間違ってるかもしれません。
  • 間違ってたら教えてくれるとうれしいです。

Zend

Zend Frameworkの基幹クラス。

Zend::loadFile()
  • include()のラッパ。失敗時に、Zend_Exceptionを投げる
Zend::loadClass()
  • "$className.php"みたいなファイルの$classNameクラスをロード
  • クラスが無ければZend_Exception
Zend::loadInterface()
  • Zend::loadClass()のInterface版
Zend::isReadable()
  • is_readable()のラッパ
Zend::dump()
  • var_dump()のラッパ
Zend::register()
  • 指定した名前のオブジェクトストアにSingletonなオブジェクトを登録
Zend::registry()
  • レジストリに登録されているオブジェクトを返す。(一つまたはリスト)
  • 存在しなかったらZend_Exception

Zend_Db

  • PDOベースのDBレイヤ。
  • SQL Injection対策サポート。
    • insert() メソッドは、勝手にquoteしてくれる。
    • update()/delete()のWHEREは自分でquoteInto使ってquoteしないとダメ。
  • 勿論、直接SQL実行させることも出来る。
  • Transactionサポート。(デフォルトはAutoCommit)
  • fetch*()
Zend_Db_DataObject
  • ActiveRecordパターン
  • リレーションOK
  • ざっと読んだ感じ、普通にActiveRecordな使い方でOK。
  • 英語読めない人もマニュアルのコードのところだけ読んでわかると思う。
Zend_Db_Select
  • SELECT文のBuilder
  • SQL Injection対策込み
  • join()は、現在のところ、JOINだけサポート。 LEFT JOINとか RIGHT JOINとかはまだ。将来的にはサポートするよと。
  • where()はプレースホルダ使ったときだけ、quoteされるっぽい。
  • having()はANDだけ。OR使いたかったら、orHaving()使う。
Zend_Db_Table
  • 使うときにまずDBアダプタをセットしないとダメみたい。(ちょっとウザいな)
  • SomeTableNameはスキーマ上some_table_nameって感じの規約
  • PKはデフォルトで"id"って名前で。(出来ればauto_incrementがいい。)
  • $_primaryを変えれば、"id"じゃ無くてもOK
  • デフォルトから変える場合は、_setup()でやるのもあり。
  • insert()は、last insert IDが返る。
Zend_Db_Table_Rowset

Zend_View

うーん。これはあまり魅力的じゃないなあ。
Smarty + 何かのMVCフレームワークとかのほうがいいかなあ。


その他

Zend_InputFilter
  • Whitelist
  • Blacklist
  • Regexp
  • newするときに、Strict/Non-Strictフラグを指定できるから、isEmail()なんかはFalseにしておいたらVodafone対応出来るような気がする
Zend_Feed
  • Feed系の便利モジュールって感じ。
  • ATOM,RSS,OpenSearchRSSが使える。
Zend_HttpClient
  • まあ普通のHTTP Clientモジュールって感じ。
Zend_Json
Zend_Log
  • シンプルなロガー。
  • 複数のログもOK
Zend_Mail
  • まあ普通のメール系モジュール
  • デフォルトのEncodeがquotedprintableなのは嫌だ。
Zend_Mime
  • 普通のMime系モジュール
Zend_Pdf
  • これもまあ普通かな。
  • 図形もまあまあ。
Zend_Search
  • テキスト検索エンジン
  • Apache Lucene派生
  • Luceneで作ったインデックスもOK
  • 複数の単語による検索も勿論OK。
  • スコアリングもOK
  • これは使いたいなあ。
Zend_Service
  • REST, Amazon, Flickr, Yahoo対応。(どんどん増やすそうだ。)
  • 個人的にはこれはアツいなあ。

感想

  • 予想に反して、重量級なFrameworkじゃない。
  • Frameworkというよりライブラリ的要素が強い気がする。
  • 欲しい部分を適宜組み合わせるといいんじゃないかな。
  • 全般的に、直感的で使いやすそう。
  • Zendが見ている方向がなんとなくわかった気がした。
  • DB周りのFrameworkとしてはZend_Db採用したい。
  • てか、SymfonyのDB周りをZend_Dbにしたい感じ。
  • とりあえず、時間見て色々弄ろう。