Propel の機能

ここではPropelの機能をピックアップしています。Propelの特徴についてはどうしてPropel?を参照してください。

  • 簡単に拡張可能
    XMLスキーマを使うことでデータモデルに関係した他のコンポーネントとの統合を簡単に行うことができるようになります。(例:フォーム生成ツールが同じXMLスキーマを使うようにすることができます)あるいは他のコンポーネントをスキーマ定義の中に拡張することができるようになります。(例:先のフォームツールに認証 - Validation を追加)
  • 簡単にカスタマイズ可能
    生成されたオブジェクトモデルをカスタマイズすることが可能です。全ての内部呼び出しは元のクラスを拡張する空のスタブクラスを介して行われます。このスタブクラスの状態を変更して独自のビジネスロジックを追加することで、元のオブジェクトモデルを後で再構築することなく、元のクラスの状態をオーバーライドすることができます。
  • うまく動いてくれる
    これはPropelがPropelのツールだけを使うことを強要しないことを意味します。例えばCriteriaオブジェクトを使うことでSQLを使わずにクエリを作ることはできますが、Criteriaだけでは全てをカバーすることができないので、SQLを使ってオブジェクトを生成することができるようにもなっています。
  • 完全に切り離されている
    カスタマイズされたSQLとPHPを作成するビルドプロセスを介すことで、データベースとのインタラクションは完全にデータベースから切り離されたものとなり、各RDBMSが提供する機能を生かすと同時にRDBMSに足りない機能を補完することを可能にしました(例:MySQLでの外部キーによるカスケード削除)。RDBMSを変更する際にデータを簡単に移行するためのツールも提供されています。
  • 直感的で、予測しやすい
    Propelのデータモデル定義はその下にあるデータベースの構造を忠実に再現します。これによりPropelを理解しやすく、複雑なデータモデルでも予測しやすいものにしています。
  • 先進的
    Propelは難しい関係性の問題を簡単で効率の良いものにしてくれます。例えば、Propelはたった1つのクエリで(外部キーを含めた)オブジェクトを追加することができます。またPropelはベーシックな継承やその他のオブジェクト指向の機能をサポートしています。