CodeIgniterか、Symfonyか


現在、社内で使用する基盤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ベースで書かれている。

□未確認な点

  • モバイルへの対応
  • 実際のパフォーマンス
  • ログのローテーション
  • ログファイルの切り替え

というような感じになっています。まだ、出しきれていないので、間違っている部分などがあるかと思いますが、その際はコメントいただければと思います。

関連記事