現在、社内で使用する基盤FWの選定を行っています。
Syfmonyは既に1度だけプロジェクトで使用したことがあり、良い点、悪い点、まだ未確認な点などが上がっています。ただ、CodeIgniterに関しては、フォームレベルで使用したことがあるだけで、本格的に中規模レベル(2、3人月程度)のプロジェクトで使用したことがありません。なので、まだ良い点や悪い点などが上がっていません。
現在、CodeIgniterのユーザガイドを読みながら少しコードを試し書きしています。自分のいつもの開発環境は、IDEとしてEclipseのPDTを使用しているのですが、Symfonyも同様ですが、CodeIgniterの方が、Eclipseの補完機能が機能していないです。(動的にフィールドを定義している為など)
現在の各FWの検証状況は以下のような感じです。
■Syfmony(version 1.1.4)
□良い点
- Yahooでの採用実績がある
- 基本的なWebFWとして、ほぼ完成している
- リリースにrysncを採用しており、作業が制限されるが作業の安定性(人為的ミスなど)、簡略化されている
- WebFWではあるが、バッチ処理も考慮されている(コマンドラインからの実行)
- sfPropelPagerが意外と便利
- 入力チェック情報を外部ファイルとして分離できる
- 独自のURLマッピングが可能
- 多言語化の為の機能は容易されている
□悪い点
- フォームの入力・確認・完了の確認画面が考慮されていない。ただし、ラッピングする形では対応可能。
- ログローテーションの設定が弱い(設定ファイルで定義できない?)
- モデル自体の容量が大きい為、対象のオブジェクトを使用する際に、メモリ使用量が大きい。
- init-adminが融通が効かなすぎて実務には使えない。
- レスポンスが悪い
- YAMLが書きにくい
□未確認な点
- 複数DBの接続切り替え
- モバイルへの対応
- 大量データの処理
■CodeIgniter
□良い点
- 縛りが緩く、また、ソースが比較的小さい為、拡張性は高い
- 基本的なライブラリ群は用意されている
- インストールが楽
- php4でも動作可能
- 独自のURLマッピングが可能
- 複数のDBの定義が可能。また、接続切り替えも容易
- 多言語化の為の機能は容易されている
□悪い点
- 入力チェックがコントローラと密結合している
- コマンドラインからの実行が考慮されていない
- URLと実際のコントローラのファイルが密結合している
- アクセスメソッド(URL)が一つのコントローラにまとまっていて、分離できない。
- FWのコードがphp4ベースで書かれている。
□未確認な点
- モバイルへの対応
- 実際のパフォーマンス
- ログのローテーション
- ログファイルの切り替え
というような感じになっています。まだ、出しきれていないので、間違っている部分などがあるかと思いますが、その際はコメントいただければと思います。