どうしてPropel?

データベースのコーディングが楽しくなります

  • PropelのAPIはきれいに定義されています。データを見つけたり操作する際に複雑なSQL構文を作る代わりに、シンプルなAPIを使って呼び出しを行います。
  • PropelはException, SPL オートロード、IteratorsといったPHP5のオブジェクト指向のスタンダードを使っているため、既に存在するアプリケーションやフレームワークにフィットします。

自然とMVCパターンにフィットします

  • PropelはMVCアーキテクチャの"Model"を提供します。
  • クラス継承を使うことで、Propelはデータモデルロジック(データの認証Validationなど)のカプセル化が簡単に行います。

アプリケーションを更に安全にします

安全なwebアプリケーションへの必要性は日に日に高まっています。特定のツールを使うことで全ての安全性が保証されることはありませんが、ツールは助けにはなれます。

  • Propelはprepared statementを使うことで、データベースに送られるデータ全てをエスケープかバイナリーエンコードします。
  • Propelはデータベースから送られるstring, integer, boolean, floatといった様々なデータの型を変換(cast)するため、PHPアプリケーションの中での型の厳密なチェックを有効にすることができます。

アプリケーションが更にポータブルになります

  • Propelを使うアプリケーションのRDBMSの移行を設定ファイルの値を変えるだけで行えます。
  • またPropelは元のRDBMSから移行先のRDBMSへのデータの移行を助けるツールを提供します。

カスタマイズや拡張を可能にするデザイン

  • 生成されたクラスは拡張可能です。Propelはカスタムロジックを追加したり親メソッドをオーバーライドできる空のスタブクラスを作成します。これらのクラスは元のモデルを更新して再生成した後も上書きされて消えることはありません。
  • Propelはシンプルな Phing タスクやオブジェクト指向のビルダークラスを使っているため、Propelを拡張することも簡単に行えます。