ZendFramework Preview

いしなおさんによると、今年中には1.0が出るらしいので、本格的にZend Frameworkを調べてみる。
ZendFrameworkもPEARと同じでお手軽にパッケージを登録できる感じはないので、自分用のチャネルサーバが欲しいと思った。
とりあえず、放置してた作業コピーでsvn upする。

trunkの中身は

LICENSE.txt
NEWS.txt
README.txt
demos
documentation
incubator
library
tests

こんな感じ。
demosに新しいdemoがいくつか登録されていました。
incubatorは実験段階のパッケージで、採用されるとlibraryの中に移動するという事だと思います。
testsはPHPUnit2を使った単体テストが入ってる模様。試しにAllTests.phpを実行してみたところ。

.........................................
........
Fatal error: Maximum execution time of 60 seconds exceeded in /home/tnaga/files/ZendFramework/library/Zend/Cache/Core.php on line 153

・・・('・ω・`)

気を取り直して、libraryの中身はどんな風になっているかと覗いてみると。

Zend/
Zend.php

Zend.phpはユーティリティクラスらしいです。

 * Utility class for common functions.
    private function __construct()
    static public function loadClass($class, $dirs = null)
    static public function loadInterface($interface, $dirs = null)
    static public function loadFile($filename, $dirs=null, $once=false)
    static public function isReadable($filename)
    static public function dump($var, $label=null, $echo=true)
    static public function register($name, $obj)
    static public function registry($name=null)
    static public function isRegistered($name)

ファイル/クラスローダとregistry用のメソッドが3つとDumperしかありません。

Zend/の中は色々入っていてよくわからないですが、とりあえず概観を見る為にディレクトリだけ抜き出してみました。
Search_LuceneとPdfのファイルが多いですが、それを抜かすとこんな感じ。
(Search_LuceneもPdfも仕事上まず使わなさそうなので割愛)

Http
Http/Client
Log
Log/Adapter
Mail
Mail/Transport
Controller
Controller/Router
Controller/Router/Route
Controller/Dispatcher
Controller/Front
Controller/Action
Controller/Plugin
Filter
Db
Db/Select
Db/Adapter
Db/Adapter/Pdo
Db/Adapter/Oracle
Db/Adapter/Db2
Db/Profiler
Db/Statement
Db/Statement/Oracle
Db/Statement/Db2
Db/Table
Db/Table/Row
Mime
Uri
Service
Service/Yahoo
Service/Amazon
Service/Flickr
Feed
Cache
Cache/Frontend
Cache/Backend
Search
XmlRpc
XmlRpc/Value
XmlRpc/Client
Json
View
View/Helper
View/Filter
Config

Frameworkとして最低限のパッケージはあるよな感じでしょうか。
一方でincubatorは

Console
Mail
Mail/Transport
Db
Db/Xml
Db/Adapter
Form
Form/behaviors
Form/javascript
Form/validators
Form/elements
Mime
View
View/Helper
Locale
Locale/Data
Http
Http/Client
Measure
Measure/Cooking
Measure/Viscosity
Measure/Flow
XmlRpc
XmlRpc/Server
XmlRpc/Server/CallbackParser
Currency
Date

Measureは単位の変換ユーティリティでしょうか?
とりあえず、ディレクトリ上でわかるコンポーネントはこんな感じです。
ZFormがlibraryに移動した段階でちょっと何か作ってみたいと思います。