ORM (オブジェクト リレーショナル マッピング) フレームワークは、オブジェクト指向プログラミング言語のオブジェクト モデルをリレーショナル データベースにマッピングするために使用されるテクノロジです。これにより、開発者は SQL 言語を直接操作することなく、オブジェクト指向の方法でデータベースを操作できるようになります。 PHP開発の分野では、ORMフレームワークも広く使用されています。この記事では、PHPでのORMフレームワークの使い方を詳しく紹介します。
1. ORM フレームワークの利点
ORM フレームワークを使用すると、次の利点があります:
1. 開発効率の向上: ORM フレームワークはデータベースの技術的な詳細を隠し、コードの実装を簡素化できます。データアクセスのプロセスを改善し、開発効率を効果的に向上させます。
2. コードをよりモジュール化する: ORM フレームワークはデータ モデルをカプセル化できるため、コードがよりモジュール化され、保守が容易になります。
3. コードの複雑さの軽減: ORM フレームワークは SQL ステートメントの複雑さを抽象化し、コードの複雑さを大幅に軽減し、開発者の操作を容易にします。
2. 一般的に使用される ORM フレームワーク
PHP 開発の分野では、選択できる ORM フレームワークが多数あります。人気のある ORM フレームワークには次のものがあります:
3. ORM フレームワークの使用
次に、Doctrine ORM フレームワークと MySQL データベースを例として、ORM フレームワークの使用方法を紹介します。
1. Doctrine のインストール
Composer を通じて Doctrine ORM フレームワークをインストールするには、次のコマンドを使用してインストールできます:
composer require doctrine/orm
2. 設定接続データベース
Doctrine をデータ操作に使用する前に、Doctrine をリレーショナル データベースに接続する必要があります。 config.php ファイルに、次のデータベース構成情報を追加します:
use DoctrineORMToolsSetup;
use DoctrineORMEntityManager;
require_once "vendor/autoload.php";
$ isDevMode = true;
$config = Setup::createAnnotationMetadataConfiguration(array(__DIR__."/src"), $isDevMode);
$conn = array(
'driver' => 'pdo_mysql', 'host' => 'localhost', 'port' => 3306, 'dbname' => 'test_db', 'user' => 'root', 'password' => 'root',
);
$entityManager = EntityManager::create($conn, $config);
ここでの $config 変数は Doctrine ORM の設定オプションです。 createAnnotationMetadataConfiguration() 関数は、エンティティクラスが配置されているディレクトリを設定に渡し、Doctrine にエンティティクラスの場所を知らせます。 $conn 変数はデータベース接続情報であり、Doctrine に MySQL データベースへの接続方法を指示します。
3. エンティティ クラスを定義する
Doctrine では、エンティティ クラスはリレーショナル データベースのテーブルに対応しており、@Entity アノテーションを使用してエンティティ クラスに注釈を付ける必要があります。つまり:
DoctrineORMMapping を使用します。 ORM として;
/**
class User
{
/** * @ORMId * @ORMGeneratedValue * @ORMColumn(type="integer") */ private $id; /** * @ORMColumn(type="string") */ private $name; /** * @ORMColumn(type="string") */ private $email; public function getId() { return $this->id; } public function getName() { return $this->name; } public function setName($name) { $this->name = $name; } public function getEmail() { return $this->email; } public function setEmail($email) { $this->email = $email; }
}
ここのユーザー クラスは単純なエンティティ クラスであり、自動インクリメント整数型で @Id アノテーションが付けられた $id 属性を持ちます。エンティティ クラスの各 @ORMColumn アノテーションは、リレーショナル データベースの列名と型に対応する型と名前を持つ列を定義します。
4. データ操作の実行
Doctrine を使用したデータ操作の実行は、EntityManager インスタンスを通じて実行できます (例:
$user = new User();
$user) ->setName ('UserName');
$user->setEmail('user@email.com');
$entityManager->persist($user);
$ entityManager->flush();
ここでは、User オブジェクトをインスタンス化することによって新しいレコードが作成され、$entityManager->persist() メソッドを通じて Doctrine の操作キューに追加され、その後 $ entityManager->flush() メソッドはデータをデータベースに保存します。
データを取得する必要がある場合は、$entityManager->getRepository() メソッドを使用して、エンティティ クラスのリポジトリ オブジェクトを取得できます。エンティティ クラスのリポジトリ オブジェクトには、データベース レコードをクエリするためのさまざまなメソッドが用意されています。たとえば、「UserName」という名前のユーザーのデータを取得するには、次のコマンドを使用します:
$userRepository = $entityManager->getRepository(User::class);
$theUser = $ userRepository->findOneBy(['name' => 'UserName']);
ここでは、$theUser 変数を使用してクエリ結果を保存し、findOneBy() メソッドは指定されたクエリ条件を使用します (ここでは、name 属性は「UserName」に等しい) を使用して単一の結果を検索します。
4. 概要
ORM フレームワークを使用すると、開発効率が大幅に向上し、コードの複雑さが軽減され、コードの保守性が向上します。 PHP 開発の分野では、Doctrine、Propel、Laravel Eloquent はすべて広く使用されている ORM フレームワークです。 ORM フレームワークを使用するには、まずデータベースに接続し、エンティティ クラスを定義してから、リポジトリ オブジェクトを使用してデータベースを操作する必要があります。
以上がPHP での ORM フレームワークの使用方法の詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。