マルチデータベースのサポートには PHP を使用します。ORM (オブジェクト リレーショナル マッピング) および DAL (データベース抽象化レイヤー) ツールを使用できます。 ORM の例: Doctrine では、接続パラメーターを構成することで、MySQL や PostgreSQL などの複数のデータベースをサポートできます。 DAL の例: Propel は、さまざまなデータベース操作を処理するために個別の接続オブジェクトを作成できます。実際のケース: 2 つのデータベースを接続する QueryBuilder を通じてクエリを実行し、異なるデータベースから結果を取得します。ヒントには、依存関係注入を使用して接続を管理すること、さまざまなモデル クラスを作成すること、ドメイン イベントを考慮することなどが含まれます。
はじめに
オブジェクト リレーショナル マッピング (ORM) とデータベース抽象化レイヤー (DAL) は、PHP の 2 つの重要なツールです。さまざまなデータベースとのやり取りを簡素化できます。この記事では、これらのツールを使用して、PHP アプリケーションで複数のデータベースをサポートする方法を説明します。
ORM 例: Doctrine
Doctrine は、データベース テーブルをオブジェクトにマップできるようにする人気の PHP ORM です。複数のデータベースをサポートするには、Doctrine の接続パラメータを設定できます:
$doctrineConfig = [ 'driver' => 'pdo_mysql', 'user' => 'user1', 'password' => 'password1', 'dbname' => 'database1' ]; $connection1 = \Doctrine\DBAL\DriverManager::getConnection($doctrineConfig);
$doctrineConfig2 = [ 'driver' => 'pdo_postgresql', 'user' => 'user2', 'password' => 'password2', 'dbname' => 'database2' ]; $connection2 = \Doctrine\DBAL\DriverManager::getConnection($doctrineConfig2);
DAL 例: Propel
Propel は、データベース操作を処理するオブジェクト指向インターフェイスを提供する PHP DAL です。複数のデータベースをサポートするために、別の DAL 接続オブジェクトを作成できます:
$propelConfig1 = [ 'phpConfFileName' => 'propel1.ini' ]; $connection1 = \Propel::getConnection('default', $propelConfig1);
$propelConfig2 = [ 'phpConfFileName' => 'propel2.ini' ]; $connection2 = \Propel::getConnection('alternative', $propelConfig2);
実際のケース: 2 つのデータベースのクエリ
以下は 2 つのデータベースのクエリの実際のケースです:
use Doctrine\DBAL\Query\QueryBuilder; $queryBuilder1 = $connection1->createQueryBuilder(); $queryBuilder2 = $connection2->createQueryBuilder(); $result1 = $queryBuilder1 ->select('id', 'name') ->from('users') ->execute() ->fetchAllAssociative(); $result2 = $queryBuilder2 ->select('id', 'title') ->from('posts') ->execute() ->fetchAllAssociative();
ヒント
以上がPHP オブジェクト リレーショナル マッピングとデータベース抽象化レイヤーでのマルチデータベース サポートの実践の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。