Web アプリケーションの人気が高まるにつれ、サーバー側のスクリプト言語として PHP を使用する人が増えています。 PHP は、学習と使用の容易さ、高い開発効率、優れたパフォーマンスなどの特徴により、Web アプリケーション開発の主流の言語となっています。ただし、データベースをより適切に管理するために、PHP は ORM テクノロジーに依存する必要があります。この記事では、PHP の ORM テクノロジを紹介し、分析します。
ORM は「Object Relational Mapping」の略で、オブジェクトとリレーショナル データベース間のマッピング技術です。簡単に言うと、ORM は、リレーショナル データベース内のデータをプログラム オブジェクトにマップして、データの永続性を実現するのに役立ちます。
ORM テクノロジの利点は、プログラマがデータベース クエリ言語 (SQL など) に注意を払わずにプログラム ロジックに集中できることです。 ORM は、結合クエリやサブクエリなど、一部のエンティティ オブジェクト間の関係の処理を自動的に完了することもできます。また、ORM フレームワークは、シンプルで使いやすいデータベース アクセス中のエラー メッセージの処理に役立ちます。
PHP では、使用できる ORM フレームワークが多数あります。この記事では、PHP で最も一般的に使用されている 3 つの ORM フレームワークを紹介します。
(1) Doctrine
Doctrine は、PHP コミュニティで最も一般的に使用されている ORM フレームワークの 1 つです。完全なオブジェクト指向スタイルで記述されており、例外処理、トランザクション処理、モデルの関連付けなどの機能を提供します。 Doctrine は、柔軟な XML ベースのモデル構成を使用して、データベースを迅速に初期化し、対応するデータベース テーブルを生成します。
(2) Eloquent
Eloquent は、Laravel 開発フレームワークに付属する ORM フレームワークで、強力なクエリ ビルダーとモデルの関係を提供します。 Eloquent はデフォルトでアクティブ レコード モードを使用してデータベースを操作するため、開発効率が非常に高くなります。
(3) Propel
Propel は、PHP コミュニティで人気のあるもう 1 つの ORM フレームワークで、完全な ORM 機能と 2 つのモード (アクティブ レコードとデータ マッパー) を提供します。 Propel には、単純な YAML を使用してクラスとテーブルのマッピングを定義できる強力なスキーマ機能があります。
次に、Eloquent を例に ORM の基本的な使い方を紹介します。
(1) モデルを構築する
Eloquent では、データ テーブル モデルを定義するための単純な PHP クラスを作成できます。以下に例を示します:
<?php use IlluminateDatabaseEloquentModel; class User extends Model { protected $table = 'users'; }
上記のコードでは、User クラスを定義し、Eloquent の Model クラスを継承します。 $table 属性は、モデルに対応するデータベース テーブル名を定義します。
(2) データのクエリ
Eloquent では、モデル クラスを直接使用する方法と、クエリ ビルダーを使用する方法の 2 つの方法でデータをクエリできます。
使用モデル クラス:
$user = User::find(1); echo $user->name;
ここでの find() メソッドは、Eloquent によってカプセル化されたメソッドであり、主キー 1 を持つレコードをクエリするために使用されます。その中のプロパティを使用できます。
クエリ ビルダーの使用:
$users = DB::table('users')->where('votes', '>', 100)->get();
ここでは、SQL クエリ ステートメントを簡単に作成できる $query ビルダーを使用します。
(3) データの追加と更新
Eloquent では、create() メソッドを使用してデータベースに新しいレコードを挿入できます。
$user = User::create(['name' => 'John Doe', 'email' => 'johndoe@example.com']);
も使用できます。 save() メソッドは既存のレコードを更新します:
$user = User::find(1); $user->email = 'newemail@example.com'; $user->save();
(4) データの削除
Eloquent では、delete() メソッドを使用してレコードを削除できます:
$user = User::find(1); $user->delete();
(5) モデルの関連付け
#Eloquent では、モデルの関連付けを使用して、モデル間の関係を迅速かつ簡単に定義できます。たとえば、1 対 1、1 対多、および多対多の関係を使用して、モデル間の関係を定義できます。以下に例を示します。<?php namespace AppModels; use IlluminateDatabaseEloquentModel; class User extends Model { public function posts() { return $this->hasMany(Post::class); } } class Post extends Model { public function user() { return $this->belongsTo(User::class); } }上記のコードに示すように、$hasMany メソッドと $belongsTo メソッドを使用して 1 対多の関係を定義できます。ここで、各ユーザーは複数の記事を持つことができ、各記事は 1 人のユーザーのみに属します。 4. 概要この記事では、ORM テクノロジーの定義、一般的な ORM フレームワーク、ORM の基本的な使用法、モデルの関連付けなど、PHP の ORM テクノロジーを紹介および分析します。 ORM テクノロジーはデータベースの管理を改善し、開発をより効率的かつシンプルにするのに役立ちます。実際の開発では、特定のニーズに応じて適切な ORM フレームワークを選択して適用できます。
以上がPHP の ORM テクノロジーの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。