PHP Manual

Серія "Доктрина" - Вступ

27. 08. 2021

Obsah článku

Doctrine - просунута PHP-бібліотека для роботи з об'єктно-орієнтованими базами даних. Основною метою та завданням Доктрини є опис схеми бази даних за допомогою сутностей даних та маніпулювання даними повністю об'єктно-орієнтованим способом.

Ця парадигма називається ORM (Object-relational mapping), тобто design-pattern для перетворення (обгортання) даних, що зберігаються в реляційній базі даних, в об'єкт, який можна використовувати на об'єктно-орієнтованій мові. Таким чином, для розуміння і використання Вчення необхідно знати хоча б основи об'єктно-орієнтованого програмування.

Навіщо вивчати Вчення?

Причин багато:

  • Doctrine є найбільш поширеною ORM-базою даних, яка використовується більшістю просунутої PHP-спільноти.
  • Це значно спростить дизайн вашого PHP-додатку
  • Ви забезпечуєте узгоджений спосіб проектування, версій, перенесення та резервного копіювання схеми бази даних
  • Ви можете отримати багато таблиць бази даних, завантаживши пакет без необхідності нічого розбиратися і налаштовувати
  • Зв'язки між таблицями стають реальними фізичними об'єктами
  • Виходи бази даних будуть не звичайними нетипізованими масивами, а реальними фізичними об'єктами
  • Ви отримуєте простий спосіб виконувати багато операцій одночасно в рамках однієї транзакції
  • Ви легко підвищите безпеку і відмовостійкість додатків, просто знаючи, коли що відбувається, і що це відбувається безпечно
  • Ви отримуєте легко тестуємий рівень коду і бази даних
  • Ви відкриєте для себе цілу екосистему навколо Доктрини, яка елегантно вирішує багато проблем. Ви часто знайдете прості рішення складних проблем, які в іншому випадку майже неможливо легко вирішити
  • Ви дізнаєтесь багато нового, знайдете нові ідеї та зможете використовувати базу даних на повну потужність
  • Позбутися складних SQL-запитів. Doctrine надає користувацький інтерфейс написання запитів (DQL), який є дуже потужним
  • Заявки будуть розглядатися швидше. Ви легко знайдете можливості для оптимізації додатків, скористаєтеся перевагами лінивого завантаження і знайдете вузькі місця додатків

Давня думка автора цієї статті (Jan Barasek) полягає в тому, що Doctrine - це найкращий спосіб роботи з базою даних на PHP. У нього просто немає конкуренції.

З чого почати?

Перш ніж почати повноцінно використовувати Вчення, необхідно підготувати відповідне середовище. Якщо ви тільки починаєте працювати з PHP або не маєте достатніх знань, найкращим вибором буде встановлення Nette Framework з пакетом розширення Baraja Doctrine, який автоматично інтегрує повну підтримку. Спочатку завантажте пакет через Composer, потім встановіть розширення DI Extension і Doctrine почне працювати автоматично.

Для коректної роботи "Доктрини" необхідно підготувати порожню базу даних ("Доктрина" може працювати з існуючим проектом, але для перших кроків це недоцільно, оскільки є ризик перезаписати існуючі дані) та налаштувати з'єднання. Оскільки Doctrine є не просто бібліотекою баз даних, а надає розширений фреймворк бази даних, вам потрібно вирішити іншу конфігурацію. Більшість налаштувань автоматично перезаписуються в цьому пакеті для Nette, проте в мінімальній конфігурації ваш сервер повинен підтримувати розширення APCu Cache або SQLite3.

Якщо все налаштовано правильно, то в Nette буде створено новий сервіс DI Baraja\Doctrine\EntityManager, який можна інжектувати в Presenter:

namespace App\FrontModule\Presenters;
use Baraja\Doctrine\EntityManager;
final class HomepagePresenter extends BasePresenter
{
#[Inject]
public EntityManager $entityManager;
}

Якщо вдасться впровадити базовий сервіс EntityManager, можна починати вивчати і працювати з Доктриною.

Як діяти далі?

Наступні розділи є поєднанням технологічного довідника Доктрини, багаторічного досвіду, шаблонів проектування та готових рішень. Разом ми пройдемо всі основні елементи Доктрини: від визначення власної сутності до створення фізичної схеми бази даних, роботи з інструментом керування версіями та промислового розгортання.

Я використовую "Вчення" дуже давно і вирішив у ньому тисячі справ. Ми покажемо поради та підказки, як використовувати 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:

Související články

1.
2.
Status:
All systems normal.
2024