タグ

2015年9月22日のブックマーク (4件)

  • Symfony2でDoctrine2使う時によく使うEntityのアノテーション一覧とDoctrine2のコマンド一覧

    Symfony2シリーズ第二弾です。 Doctrine2はアノテーションでEntityの関係や属性を指定出来るので便利です。 ただドキュメントが英語だったので自分用によく使うヤツをまとめて置いときます。 公式ドキュメント(アノテーション一覧) /** * UNIQUE制約のIndexを作るとき * nameを指定しない場合はIDX_6E72A8C13B66675Bのように種類_ランダムの名前が付けられる * @ORM\Table(name="テーブル名", uniqueConstraints={@UniqueConstraint(name="キー名", columns={"カラム名"})}) * 複数指定もできる * @ORM\Table(name="テーブル名", uniqueConstraints={@UniqueConstraint(columns={"カラム名", "カラム名"})

  • Doctrine2を試してみる (1) エンティティマネージャー : エクスギア Blog

    Doctrine2はPHPORMPHP5.3.0以降に対応しているライブラリです。 Doctrine1がすでに存在していますが、様々な便利な機能が追加されさらに強力になっています。 ただし、色々できるということは覚えることも多いということで実際にDoctrine2を触ってみてその世界に触れてみたいと思います。 今回はインストールからORMを使ってデータベースと会話してみてその特徴を見てみたいと思います。 必須条件 Doctrine2は大きく3つのパッケージから構成されています。 Commonパッケージ 他のライブラリに依存していない再利用性のあるライブラリをまとめたパッケージ。コレクションのライブラリなどが含まれています。 DBALパッケージ PDOの薄い一番上のラッパーになります。薄いというのはDBの方言の違いを吸収することだけが目的。このパッケージはCommonパッケージを含ん

  • Doctrine2を試してみる(3) リレーション : エクスギア Blog

    前回はDoctrine2のアノテーションについて簡単に触れてみました。 今回はそのアノテーションをフルに利用したDoctrine2のリレーション設定とその利用方法について見てみます。 リレーションの種類 - 双方向と単方向 まず、Doctrineではリレーションの関係が大きく2種類あります。 一方向(通常のリレーション設定。リレーションする側の設定のみ) 双方向(リレーションする側とされる側の両方のエンティティに設定) これらをドキュメントではbidirectional(双方向)、unidirectional(一方向)と表現されています。 なので、まずはこのキーワードをなんとなく覚えておいてください。 リレーションの関係 - 親エンティティと子エンティティ 公式ドキュメントにはOwning side, inverse sideという表現でされています。直訳すると「(実データを)所有して

  • Doctrine2を試してみる(2) アノテーション : エクスギア Blog

    前回はDoctrine2のインストールとエンティティマネージャを使ってみました。 今回はエンティティとアノテーションについて見ていきたいと思います。 Entity(エンティティ) エンティティとはPHPのクラスでドメインオブジェクトになります。すべてsetter/getterを通してアクセスするのでpublicプロパティは使いません。 ドメインロジックは含めません。ロジックはリポジトリクラスを通して行います。 スキーマの定義はアノテーション,XML,YAMLの好きな方法で行うことができます。 個人的には別途スキーマの定義ファイルを用意しなくてよいのでアノテーションがお勧めです。 アノテーション アノテーションとはPHPのコメントでスキーマ定義を記述できる便利な機能です。 では、実際にsandboxのUserエンティティとAddressエンティティを見てみます。 ここで、UserとA