Doctrine はオブジェクト指向のデータベース作業を行うための先進的な PHP ライブラリです。Doctrine の主な目的・目標は、データエンティティを使ってデータベーススキーマを記述し、完全にオブジェクト指向な方法でデータを操作することです。
このパラダイムはORM(Object-relational mapping)と呼ばれ、リレーショナルデータベースに格納されたデータをオブジェクト指向言語で利用できるように変換(ラッピング)するためのデザインパターンである。したがって、Doctrine を理解し使用するためには、少なくとも オブジェクト指向プログラミング の基本を理解している必要があるのです。
いろいろな理由があるんです。
この記事の著者 (Jan Barasek) の長年の意見は、Doctrine が PHP のデータベースを扱うのに最も適した方法であるということです。単純に競合がいないのです。
Doctrineを本格的に使い始める前に、環境を整える必要があります。PHPを始めたばかりであったり、上級の知識がない場合は、自動的にフルサポートを統合するBaraja Doctrine 拡張パッケージで、Nette Frameworkをインストールするのが最良の選択です。まず、Composerからパッケージをダウンロードし、DI Extensionをセットアップすると、Doctrineが自動的に動き出します。
Doctrine を正しく動作させるためには、空のデータベースを用意し (Doctrine は既存のプロジェクトでも動作しますが、既存のデータを上書きするリスクがあるので最初のステップでは不適切です)、接続を設定する必要があります。Doctrine は単なるデータベースライブラリではなく、高度なデータベースフレームワークを提供するため、その他の設定を解決する ことが必要です。Netteの場合、ほとんどの設定はそのパッケージで自動的に上書きされますが、最小構成では、サーバーが APCu Cache
または SQLite3
拡張をサポートしている必要があります。
正しく設定されていれば、Nette に新しい DI サービス Baraja</doctrine>EntityManager
が作成され、Presenter にインジェクト(https://doc.nette.org/cs/3.1/di-usage)できるようになります。
namespace App\FrontModule\Presenters;use Baraja\Doctrine\EntityManager;final class HomepagePresenter extends BasePresenter{#[Inject]public EntityManager $entityManager;}
基本的な EntityManager サービスを注入することができれば、Doctrine の学習と作業を開始することができます。
以下の章では、Doctrineの技術リファレンスガイド、長年の経験、デザインパターン、既成のソリューションなどを組み合わせています。このセミナーでは、独自のエンティティの定義から物理データベーススキーマの生成、バージョニングツールでの作業、そして本番環境への導入まで、Doctrine のすべての基本的な要素について解説します。
私は非常に長い間Doctrineを使用しており、何千ものケースを解決してきました。Doctrine を使ってデータベースの速度を最適化する方法や、データベースを適切に設計する方法などのヒントを紹介します。また、既存のプロジェクトにDoctrineを使用することもできます(一定の条件を満たす場合)ので、その方法を紹介します。
この連載は、私のトレーニングやコンサルティングの受講生を支援するために作成されました。特定のトピックについてより詳細な議論や説明が必要な場合は、jan@barasek.com までメールでお問い合わせください。比較的要求の厳しい技術であるため、質問はすべて有料の相談として扱います。
Jan Barášek Více o autorovi
Autor článku pracuje jako seniorní vývojář a software architekt v Praze. Navrhuje a spravuje velké webové aplikace, které znáte a používáte. Od roku 2009 nabral bohaté zkušenosti, které tímto webem předává dál.
Rád vám pomůžu:
Články píše Jan Barášek © 2009-2024 | Kontakt | Mapa webu
Status | Aktualizováno: ... | ja