Zend Frameworkについて

2007/02/06

いつの間にやら1.5 Previewが出て、多くの機能が追加されたZend Frameworkですが。オンラインマニュアルの日本語版はまだ追従出来ていなくて、Zend_Formとかはまだ表示されないですね。もちろん英語版ではちゃんと読めるのでまあそれほど問題はありませんが、徐々に翻訳されて追加されていくと思います。

まだまだ1.0系だって全体を把握出来てないのに、もう次のバージョンが控えてるとは困ったもんですが.。もっとも早めに見せてくれたほうが、こちらも無駄なものを開発しなくて済みますのでありがたいことではあります。

まだまだの習熟度ですが、Zend Frameworkはとてもシンプルに作られているので、まずは必要なところだけを調べながら実装していくとさと、その拡張の容易さにあると思いました。
ウェブアプリケーション開発に必要なモジュールが一通り揃っているので、すぐに使いはじめられることも魅力の一つです。PHPにもともと備わっている機能をラッピングしたクラスを作って、統一的に使えるようにしている点も評価出来ると思います。

事前にいくつか拡張モジュール(PDO関連など)をインストールしておく必要はありますが、それ以外は特に準備するものはないので、すぐ使い始められると思います。もっともPHPUnitくらいはインストールしないとテストを実行することも出来ませんが。

2007/01/05

短期間(しかも少人数)で効率良く開発するためには、やはり何らかのフレームワークは必要になってくるので、前回の仕事では結局使えなかったものの、せっかく調べた(ちょっとだけですが)Zend Frameworkをもう少し掘り下げてみようと考えています。

まずは時間がなくて流し読みしかしていないドキュメントをもう少しきっちり読むべく、MVCの要の部分であるZend Controllerから始める事にしました。

改めて読み返してみてその素性の良さを感じています。コントローラーとその周辺のクラスは、そのままでも柔軟にアプリケーションの要望に応えられるようなものが多いので、必ずしもサブクラスを作らなくてもいいですし、共通的な機能はヘルパーやプラグインとして実装が可能になっています。

ようやくリリースされたばかりのフレープワークですが、ライブラリは良く整理されているし、コードも読みやすいです。

ドキュメントだけでは良く分からないときは、どうしてもソースコードを読む必要が出てくるので、どこになにがあるのか把握しやすいのは助かります。

取りかかったばかりなので、全体を把握するにはまだ時間がかかりそうです(これを次の仕事に結びつけないと意味がありませんが)。

2007/12/21

Zend Frameworkを使う事をほぼ決定し、サンプルを動かしながら大まかな使い方も分かって、いざ作り込みを開始という段階で、お客様のサーバーではPHP4しか動かないということが判明して、あえなく頓挫。時間もないので機能をしぼって自作する事にしました。

テンプレートエンジンやデータベースライブラリはSmartyなど有名どころで賄うことにして、コントローラー部分をZend Controllerを参考に作りました。リファレンス的なものがあると構成を考える手間が省けるので、以外に短時間で自分が思っていたようなものが出来ました。Zendのコントローラーとその周辺のクラス構成が、自分なりに理解出来たのも収穫でした。

ところでPHP4は公式サイトによると今年度末で基本的なサポートを終了し、セキュリティ関係のものも翌年の8月までとなっているので、いよいよ収束する方向に向かう訳ですが、国内ではまだまだ使われているようです。

PHP5が登場して既に3年も経過しているのに、切り替わっていないレンタルサーバーもまだまだ有りますから、本格的な移行はこれからということなんでしょうか。

今回作ったプログラムを両方の環境で動作確認してみると、オブジェクトまわりの挙動がいくつか違っていて、PHP4のほうがその辺りを意識してきっちり書かないと動かなかった部分があったので、既に大きなアプリケーションを抱えているところは動作確認だけでも頭が痛いでしょうね。段階的な移行計画を立てないとはまりそうですし。

2007/12/14

お客様からPHP案件のヘルプ要望が来たので、長らく使っていなかったPHPの復習もかねてZend Frameworkを調べてみる事にしました。

PHPはウェブアプリでは最もメジャー(だと思う)な言語だけあって、ざっと調べただけでも20種類以上ものフレームワークが存在しています。マイナーなものも含めるともっと多いのではないかと思います。
それぞれ開発者の思想というかスタンスが色濃く反映されているので、俯瞰すると大体同じような機能を持ってはいるものの、規約というか使い方がずいぶん違っていて使い方を学ぶのにはそれなりに時間がかかりますし、ゼロからの開発ならともかく、既存のプロジェクとに適用するのは(ガッチガチの古い作りだと)かなり苦労すると思います。

どのフレームワークをターゲットにしようかと迷ったすえ、寄らば大樹の陰ということでZend Frameworkにしました。今年の初頭に登場したときはまだ開発者向けのリリースでしたが、バージョンも既に1.03になっていますし、なによりゼンド・ジャパンがあることがお客様に勧めやすいと判断した理由の一つです。
社内で完結するアプリであれば独自開発で困る事はないだろうと思いますが、開発とメンテナンスがそれぞれ別の会社になる可能性のある今回のケースでは、サポートしてくれる会社があることはとても重要です。

リファレンスを見るとかなりシンプルで、フレームワークというよりはライブラリか思うほどですが、どうしてなかなかよく出来ています。いわゆるMVCパターンに沿ったアプリケーション開発が出来るようになっていて、Railsに影響されていると思われる規約にそったURIルーティングなど、興味深い内容が盛りだくさんです。
View用のテンプレートも基本はPure PHPで、別のものを使いたければラッパークラスを作成すれば良いようになっていますし、リファレンスガイドにはSmartyを使った例があるので、これを参考すれば比較的容易に作成出来るのではないでしょうか。

いらっしゃいませ

弊社は京都の会社です。主にオープンソースプロダクトを使ったアプリケーションの開発を行っています。


基本的にお話を伺うだけなら無料(ただし交通費はご負担頂きます)ですので、お気軽にご相談ください。