教義 – ウィキペディア、無料百科事典
教義 – データベースとの通信のための包括的なサービスのためのPHPのライブラリファミリー。 Doctrine 2.0には以下が含まれます。
- Dos Corts the Labal -PHPデータオブジェクトに基づくデータベース抽象化のレイヤー、
- ドクトリンorm -biblioteka orm、
- ドクトリン・モンゴドブ – Mondrodbデータベースの非宗教サービスのライブラリ、
- 教義の移行 – データベース移行ツール。
数字1.xでマークされた以前のエディションは、移行のための統合ツールとデータベース抽象化の層を備えた単一のORMライブラリでした。
このプロジェクトは、Vestherinenのスタッフによって開始されました。 Zyne- 。 SVNリポジトリの最初の改訂は、2006年4月13日から来ています。プロジェクトを中心にそれを開発しているアクティブなコミュニティ、そしてプロジェクトには特に参加しましたGoogle Summer of Codeイニシアチブで。 Doctrine 1.0.0は2008年9月1日にリリースされました。
2010年12月21日に、Doctrine 2.0.0がリリースされました。これは、多くの基本的な設計の仮定の変更により再び書かれました。このリリースから始めて、ライブラリは、このバージョンで導入された名前と匿名の名前の使用と、パフォーマンス上の理由で共有キャッシュシステム(APC、Memcedなど)の使用により、少なくともPHP 5.3を必要とします。
バージョン2.0から始まります 教義 それは、より小さく、より専門的なライブラリの家族です。したがって、著者は、基地とのコミュニケーションのあらゆる側面を扱うモノリシック図書館のモデルを去りました。
バージョン1.x [ 編集 | コードを編集します ]
Doctrine 1.xは、モデルの形でのリレーショナルデータベースの表を表し、データ管理インターフェイスへのアクセスを提供します。このタイプの他のソリューションとは異なり、ライブラリは既存のデータベース構造に基づいてモデルを生成できます。そのため、XML形式で広範なスキームを管理する必要はありません。生成されたモデルは、プログラマーが必要とする追加の機能を使用して拡張できます。また、モデルとデータベース構造の両方を生成するために使用されるYAML形式の図を使用することもできます。
重要なライブラリオプションの1つは、DQLと呼ばれるSQLのオリジナルのオブジェクト方言です( ドクトリンクエリ言語 )、HibernateのHQLに触発されました。クラス方法の助けを借りて問い合わせも策定することができます Doctrine_Query
。 DQLはモデルで動作するため、SQLに代わる柔軟な代替品であり、ロジックの一部を隠し、異なるデータベースシステム間でよりポータブルです。
他の図書館の可能性には次のものがあります。
- データベースに木質構造を保存するためのサポート。
- サービス フック (正確性とフィルタリングデータをチェックする方法)および追加のビジネスロジックの表現を容易にするイベント。
- トランザクションのサポート
- キャッシュメカニズム
- 共有行動(英語 行動 )それはモデルで使用できます。
- データベース移行のサポート(構造更新)。
バージョン2.x [ 編集 | コードを編集します ]
Doctrine 2.0は、データベースの操作のさまざまな側面を担当する多くの小さなライブラリで構成されています。基本的なライブラリはです Dos Corts the Labal データベース抽象化のレイヤーを構成します。追加の機能を備えたPHPデータオブジェクトを拡張し、そのように導入します機構 プラットホーム これは、さまざまなデータベース管理システムで使用されるSQL方言の可能性と違いを説明しています。ライブラリは、DBALに基づいて構築されています orm 。以前のエディションと比較して、そのアーキテクチャと使用された用語は完全に再構築されています。データベース詩を表すオブジェクトは、もはやモデルと呼ばれるのではなく、エンティティによって呼ばれます。エンティティクラスは任意のクラスにすることができます。ライブラリは、ここで拡張またはインターフェイスに必要な基本クラスを課していません – フィールドは注釈メカニズムを通じて説明されています。の利益のためにPHP言語の魔法の要素の使用 エンティティのマネージャー ( エンティティマネージャー )、オープンな方法でエンティティを管理します。
可能性:
- 舌 ドクトリンクエリ言語 明確で明確な文法と新しい要素による拡張の可能性を備えたクエリを策定するには、
- ライトエンティティオブジェクト – 教義は、拡張するためのインターフェイスやクラスを課さない、
- 可能なパフォーマンスを得るために実行するためのクエリのトランザクションとインテリジェントなキューイングのサポート、
- 注釈メカニズムまたはXML/YAML形式を介したデータベース構造の説明、
- ライブラリレベルでのテーブルの継承のサポート、
- 優れた拡張オプション、
- バフ化メカニズム。
それらは完全に新しいライブラリです Doctrine Mongodbドキュメントオブジェクトマッパー 類似しています ドクトリンorm 宗教的でないMondRodbデータベースの機能、および 教義の移行 データベーススキームとその更新のバージョンのため。
Doctrine 1.Xには、少なくともPHP 5.2.3が必要でした。 Doctrine 2.0が少なくともPHP 5.3.0を必要とし、PHP 5.3.2はDoctrine 2.2バージョンから必要ですが、Doctrine 2.5の最新バージョンには少なくともPHP 5.4が必要です。さらに、共有メモリ(APC、Memcedなど)を使用するバッファリングメカニズムを持つことをお勧めします。
Doctrine 1.xは、アクティブレコードパターンを使用してデータを動作させました。モデルのモデルは、その中の単一のテーブルと、そのようなクラスのオブジェクト – データベース内の単一の詩に対応しています。たとえば、テーブルに新しい詩を作成する ユーザー
、正しいオブジェクトを作成してデータを入力するだけです。
//新しい詩を表すオブジェクトを作成します $ユーザー = 新しい ユーザー (); //オブジェクトにデータを入力します $ユーザー - > SetName ( 「コワルスキー」 ); $ユーザー - > パスワードを設定してください ( 「ハスロ」 ); //データベース詩を保存します $ユーザー - > 保存 (); エコー 「IDを持つユーザー」 。 $ユーザー - > できる () 。 「それは救われました。」 ;
Doctrine 2.xは、軽量オブジェクトで表されるエンティティで動作します。データベース内のエンティティのダウンロードと保存は、ヘルプを使用して行われます エンティティのマネージャー ( エンティティマネージャー )これは、データマッピングパターンの実装です。
//新しい詩を表すオブジェクトを作成します $ユーザー = 新しい ユーザー (); //オブジェクトにデータを入力します $ユーザー - > SetName ( 「コワルスキー」 ); $ユーザー - > パスワードを設定してください ( 「ハスロ」 ); // $ userオブジェクトを「管理」するようにドクトリンに通知します。 $ entityManager - > 持続します ( $ユーザー ); //データベース詩を保存します $ entityManager - > 流す (); エコー 「IDを持つユーザー」 。 $ユーザー - > できる () 。 「それは救われました。」 ;
Doctrineは、オブジェクトの条件を継続的に制御し、含まれるデータを新しい詩として追加する必要があるかどうか、または既存の存在を表して更新する必要のあるかどうかを知っています。さらに、プロジェクト内の特定のモデルの機能に関連するロジックは、アプリケーション全体に散在するのではなく、その中にプログラムできます。これにより、大規模なプロジェクトの管理が促進されます。
Recent Comments