| 教義 | |
|---|---|
![]() | |
| 安定版リリース | 2.11.2 |
| リポジトリ | |
| 書かれた | PHP |
| オペレーティング·システム | クロスプラットフォーム |
| タイプ | オブジェクトリレーショナルマッピングフレームワーク |
| ライセンス | マサチューセッツ工科大学 |
| Webサイト | www.doctrine-project.org |
Doctrineプロジェクト(またはDoctrine )は、主に永続化サービスと関連機能の提供に重点を置いたPHPライブラリ群です。最もよく知られているプロジェクトは、オブジェクト・リレーショナル・マッパー(ORM)と、その上に構築された データベース抽象化レイヤーです。
Doctrine の主な機能の 1 つは、SQL のオブジェクト指向方言である Doctrine Query Language (DQL) でデータベース クエリを記述するオプションです。
2 つの主要な PHP フレームワークであるSymfonyとLaminasの開発者は、 Doctrine の公式のサポートをすぐに利用できます。また、サードパーティの Doctrine パッケージは、Laravel、CodeIgniterなどでも利用できます。
Doctrine 2におけるエンティティは、永続化可能なプロパティを持つ軽量なPHPオブジェクトです。永続化可能なプロパティは、エンティティのインスタンス変数であり、Doctrineのデータマッピング機能によってデータベースに保存され、データベースから取得されます。エンティティマネージャは、データマッパーパターンの実装です。
$user =新しいユーザー(); $user ->名前= "john2" ; $user ->パスワード= "doe" ;//$entityManager は Doctrine\ORM\EntityManagerInterface のインスタンスであり、通常は依存性注入によって取得されます$entityManager -> persist ( $user ); $entityManager -> flush ();echo "ID $user->idのユーザーが保存されました。" ;Doctrine 1.x は、データ操作にアクティブレコードパターンを採用しており、クラスはデータベーステーブルに対応しています。例えば、プログラマーがデータベースに新しい「User」オブジェクトを作成したい場合、SQLクエリを書く必要はなく、次の PHP コードで済みます。
$user = new User (); $user -> name = "john" ; $user -> password = "doe" ; $user -> save (); echo "ID $user->idのユーザーが保存されました。" ;
Doctrineの特徴の一つは、プロジェクトを開始するために必要な設定レベルが低いことです。Doctrineは既存のデータベースからオブジェクトクラスを生成し、プログラマーは生成されたクラスにリレーションを指定したり、カスタム機能を追加したりできます。他の多くのフレームワークのように、複雑なXMLデータベーススキーマを生成したり管理したりする必要はありません。
Doctrineのもう一つの重要な機能は、 HibernateのHQLに着想を得たDQL(Doctrine Query Language)と呼ばれるオブジェクト指向(OO )SQL方言でデータベースクエリを記述できるオプション機能です。また、QueryBuilderクラス( Doctrine 1.xではDoctrine_Query )を使用すると、流れるようなインターフェースを介してクエリを構築できます。これらのインターフェースは、開発者にSQLに代わる強力な代替手段を提供し、柔軟性を維持しながら、コードの重複なしにデータベースバックエンドの切り替えを可能にします。
ただし、Doctrine は結合と関連オブジェクトの取得を自動で行うため、クエリを明示的に記述する必要は必ずしもありません。小規模なプロジェクトであれば、クエリを記述しなくても簡単に構築できます。
Doctrine のその他の注目すべき機能は次のとおりです。
Doctrineは、 zYne-としても知られるKonsta Vesterinenによって開始されました。プロジェクトの最初のコミットは2006年4月13日に行われました。プロジェクトが成熟するにつれて、採用も増加し始めました。間もなくコミュニティは活発になり、開発にはGoogle Summer of Codeプロジェクトをはじめとする関係者からの定期的な貢献が寄せられるようになりました。
Doctrine 1.0.0は2008年9月1日にリリースされました。[ 1 ]
Doctrine 2.0の最初の安定版は、2008年初頭から2年半の開発期間を経て、2010年12月22日にリリースされました。[ 2 ]
Doctrineは、数十ものプロジェクトと様々な人々から影響を受けてきました。最も大きな影響を与えたのは、Java ORMソリューションであるHibernateと、Ruby on Railsで使用されているActiveRecordアーキテクチャです。Doctrineプロジェクトの目的は、継続的な訪問者フローを維持する必要がある高負荷ウェブサイト向けに、 PHP言語向けに同等の強力なソリューションを構築することです。Doctrine ORMは、そのようなウェブサイトのパフォーマンスを向上させるために使用できます。