タグ

Doctrineに関するtaka_maのブックマーク (6)

  • Doctrine - Doctrine ORM for PHP - YAML Schema Files

    スキーマファイルの目的はPHPコードの編集よりもYAMLファイルでモデルの定義を直接管理できるようにすることです。すべてのモデルの定義/クラスを生成するためにYAMLスキーマファイルは解析され使われます。これによってDoctrineモデルの定義がはるかにポータブルなものになります。 スキーマファイルはPHPコードで書く通常のすべての内容をサポートします。接続バインディング用のコンポーネント、リレーション、属性、テンプレート/ビヘイビア、インデックスなどがあります。 Doctrineは省略記法でスキーマを指定する機能を提供します。多くのスキーマパラメータはデフォルトの値を持ち、これによって構文をできるのでDoctrineはデフォルトを利用できます。すべての省略記法を利用したスキーマの例は下記の通りです。 detect_relationsオプションによってカラムの名前からリレーションの推測が行

  • DoctrineでデータベースのViewを使って楽をする

    を実行すればDoctrineのモデルが作成されます。 Viewですので更新処理は行えませんが、 参照系のカスタムメソッドは追加できます。 ■サンプル ※クリックで拡大 ポイントの概念も売れた日付の記録すらない簡単な注文テーブル群でカッコ悪いのですが、 これを元にViewを作成してschema.ymlを書いてみます。 まずViewは名前と住所、注文商品数と合計金額そして粗利益を集計し 以下の様な表を作成します。 Viewを作成するSQLは以下のようになります。 CREATE VIEW  cart_order AS SELECT cart.id , member.name , member.address , (SELECT COUNT(sale.id) FROM sale WHERE cart_id = cart.id) AS sales_amount, (SELECT SUM(item.p

    DoctrineでデータベースのViewを使って楽をする
  • gr.jp

    This domain may be for sale!

  • Doctrine - Doctrine ORM for PHP - Defining Models

    以前述べたように、Doctrineの最も低いレベルにおいてスキーマはデータベーステーブル用のスキーマメタデータをマッピングするPHPクラスの一式で表現されます。 この章ではPHPコードを使用してスキーマ情報をマッピングする方法を詳しく説明します。 データベースの互換性の問題の1つは多くのデータベースにおいて返されるクエリの結果セットが異なることです。MySQL はフィールドの名前はそのままにします。このことは"SELECT myField FROM ..."形式のクエリを発行する場合、結果セットはmyFieldのフィールドを含むことを意味します。 不幸にして、これはMySQLとその他のいくつかのデータベースだけの挙動です。例えばPostgresはすべてのフィールド名を小文字で返す一方でOracleは大文字ですべてのフィールド名を返します。"だから何?Doctrineを使う際にこれがどのよう

  • MySQLで外部キーを付ける時にエラー

    symfonyでschema.ymlにごにょごにょ書いていざテーブル作成!と思ったら以下のエラー。 SQLSTATE[HY000]: General error: 1005 Can't create table 'dbname.#sql-192c_1a6' (errno: 150). Failing Query: "ALTER TABLE table1 ADD CONSTRAINT table1_user_id_sf_guard_user_id FOREIGN KEY (user_id) REFERENCES sf_guard_user(id)". Failing Query: ALTER TABLE table1 ADD CONSTRAINT domain_user_id_sf_guard_user_id FOREIGN KEY (user_id) REFERENCES sf_guard

  • Doctrineのオブジェクト単位での悲観的ロックについて

    public function executeIndex(sfWebRequest $request) { echo 'Lock Start!'; //Doctrineのコネクションを取得 $conn = Doctrine_Manager::getInstance()->getCurrentConnection(); //コネクションを渡し、ロックマネージャーを生成する $lockingManager = new Doctrine_Locking_Manager_Pessimistic($conn); //適当なMemberオブジェクトを取得 $member = Doctrine::getTable('Member')->find(1); try { //ロックのタイムアウトを設定 $lockingManager->releaseAgedLocks(300); //オブジェクトに対してロッ

    Doctrineのオブジェクト単位での悲観的ロックについて
  • 1