Jump to content

Доктрина (PHP)

Доктрина
Стабильная версия
2.11.2
Репозиторий
Написано в PHP
Операционная система Кросс-платформенный
Тип объектно-реляционного отображения Структура
Лицензия С
Веб-сайт www .doctrine-проект .org Отредактируйте это в Викиданных

Проект Doctrine (или Doctrine ) — это набор библиотек PHP, в первую очередь ориентированных на предоставление служб персистентности и связанных с ними функций. Его наиболее известный [ по мнению кого? ] Проекты — это объектно-реляционный преобразователь (ORM) и уровень абстракции базы данных, на котором он построен.

Одной из ключевых особенностей Doctrine является возможность писать запросы к базе данных на языке запросов Doctrine (DQL), объектно-ориентированном диалекте SQL.

Разработчики двух основных PHP-фреймворков, Symfony и Laminas, имеют официальную готовую поддержку Doctrine, а сторонние пакеты Doctrine доступны для Laravel , CodeIgniter и других.

Демонстрация использования

[ редактировать ]

Сущности в Doctrine 2 — это облегченные объекты PHP, содержащие постоянные свойства. Постоянное свойство — это переменная экземпляра сущности, которая сохраняется в базе данных и извлекается из базы данных с помощью возможностей сопоставления данных Doctrine через Entity Manager — реализацию шаблона сопоставления данных :

 $user = new User();
 $user->name = "john2";
 $user->password = "doe";

 //$entityManager is an instance of Doctrine\ORM\EntityManagerInterface, usually obtained through dependency injection
 $entityManager->persist($user);
 $entityManager->flush();

 echo "The user with id $user->id has been saved.";

Doctrine 1.x следует шаблону активной записи для работы с данными, где класс соответствует таблице базы данных . Например, если программист захочет создать новый объект «Пользователь» в базе данных, ему больше не нужно будет писать SQL- запросы, а вместо этого он сможет использовать следующий PHP-код:

 $user = new User();
 $user->name = "john";
 $user->password = "doe";
 $user->save();
 echo "The user with id $user->id has been saved.";
Обзор доктрины

Одной из особенностей Doctrine является низкий уровень конфигурации, необходимый для запуска проекта. Doctrine может генерировать классы объектов из существующей базы данных, а затем программист может указывать связи и добавлять собственные функции к сгенерированным классам. Нет необходимости создавать или поддерживать сложные схемы баз данных XML , как это наблюдается во многих других средах.

Еще одной ключевой особенностью Doctrine является возможность опционально писать запросы к базе данных на объектно -ориентированном диалекте SQL, называемом DQL (язык запросов Doctrine), вдохновленном Hibernate HQL . Альтернативно, QueryBuilder ( Класс Doctrine_Query в Doctrine 1.x) позволяет создавать запросы через свободный интерфейс . Эти интерфейсы предоставляют разработчикам мощные альтернативы SQL, которые сохраняют гибкость и при этом позволяют переключать серверные части базы данных, не требуя дублирования кода.

Однако явное написание запросов не всегда необходимо, поскольку Doctrine автоматически выполняет соединения и извлекает связанные объекты. Небольшие проекты можно легко создавать без написания запросов.

Другими примечательными особенностями Доктрины являются:

  • поддержка перехватчиков (методов, которые могут проверять или изменять входные и выходные данные базы данных) и прослушивателей событий для структурирования бизнес-логики;
  • наследование агрегации столбцов (похожие объекты могут храниться в одной таблице базы данных, при этом один столбец типа определяет подтип конкретного объекта - при выполнении запроса всегда возвращается правильный подкласс);
  • платформа кэширования, использующая несколько бэкэндов, таких как memcached , SQLite или APC ;
  • ACID- транзакции;
  • миграция баз данных;
  • функция «компиляции» для объединения многих файлов PHP платформы в один, чтобы избежать снижения производительности, обычно возникающего при включении множества файлов PHP платформы.

Доктрину основал Конста Вестеринен, также известный как zYne- . Первоначальное принятие проекта было сделано 13 апреля 2006 года. По мере того, как проект становился более зрелым, его внедрение начало набирать обороты. Вскоре сообщество стало активным, и разработка регулярно получала помощь, в том числе от проекта Google Summer of Code .

Доктрина 1.0.0 была выпущена 1 сентября 2008 г. [1]

Первая стабильная версия Doctrine 2.0 была выпущена 22 декабря 2010 года, после 2,5 лет специальной разработки, начавшейся в начале 2008 года. [2]

На Doctrine повлияли десятки проектов и множество разных людей. Наибольшее влияние оказали Java ORM решение Hibernate и архитектура ActiveRecord, используемая в Ruby on Rails . Цель проекта Doctrine — создание столь же мощного решения на языке PHP для высоконагруженных веб-сайтов, которым необходимо поддерживать постоянный поток посетителей. Doctrine ORM можно использовать для повышения производительности таких веб-сайтов.

См. также

[ редактировать ]
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 008bf6607b6a635cfd29ac9b3221791b__1711163940
URL1:https://arc.ask3.ru/arc/aa/00/1b/008bf6607b6a635cfd29ac9b3221791b.html
Заголовок, (Title) документа по адресу, URL1:
Doctrine (PHP) - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)