箇条書きでさくっと理解する Symfony2 Doctrine2編

箇条書きメソッド

  • 目的: 短い時間でsymfony2のORMであるDoctrine2を理解する!
  • 学習コスト: 10分ほど?
  • 更新日: 2010年12月時点

Doctrine2用語

  • DBAL(Database Abstraction Layer): PDOの上にかぶせるレイヤー
  • Entity: PHPのクラスでドメインオブジェクト。これを使ってDBと会話
  • Repository: Entity内に作り、独自のDBロジックをここで書く
  • Annotation: PHPのコメント部分にスキーマ定義(XMLなどでも書ける)
  • DQL(Doctrine Query Language): 複雑なオブジェクト読み取りを手助けするためのObject Query Language

Doctrine2

  • PHP 5.3.2以上
  • Database Abstraction Layerの上にORM(2010年12月時点 beta)がある
  • MongoDB Object Document Mapperもあるよ
  • DBのマイグレーションができて、upにスキーマアップデートのロジックを書く
  • コマンドラインのツールがある
  • スキーマの定義方法: annotation, YAML, XMLを選べる
  • EntityManager にEntityを登録して扱う
  • Repositoryを使ってfindAll,findByなどをする
  • Repositoryに自分用のロジック処理を書いてまとめられる
  • Entity状態をpersistして、キューにためて最後にflushする

Doctrine2 コマンド

  • php doctrine list : コマンド一覧表示
  • php console doctrine generate:entities : エンティティの作成
  • php console doctrine schema:create : スキーマの作成
  • php console doctrine schema:update : スキーマのアップデート