WikiDer > Доктрина (PHP)
Эта статья поднимает множество проблем. Пожалуйста помоги Улучши это или обсудите эти вопросы на страница обсуждения. (Узнайте, как и когда удалить эти сообщения-шаблоны) (Узнайте, как и когда удалить этот шаблон сообщения)
|
Стабильный выпуск | 2.6.2 / 12 июля 2018 г. |
---|---|
Написано в | PHP |
Операционная система | Кроссплатформенность |
Тип | Объектно-реляционное отображение рамки |
Лицензия | Массачусетский технологический институт |
Интернет сайт | www |
В Доктрина Проект (или же Доктрина) - это набор библиотек PHP, в первую очередь ориентированных на предоставление упорство услуги и связанные с ними функции. Его призовые проекты являются объектно-реляционный преобразователь (ORM) и уровень абстракции базы данных он построен поверх.
Одна из ключевых особенностей Doctrine - возможность писать запросы к базе данных на языке запросов Doctrine (DQL), объектно-ориентированном диалекте SQL.
Демонстрация использования
Сущности в Doctrine 2 - это легкие объекты PHP, которые содержат постоянные свойства. Постоянное свойство - это переменная экземпляра сущности, которая сохраняется в базе данных и извлекается из нее с помощью возможностей отображения данных Doctrine через Entity Manager - реализация шаблон отображения данных:
$ пользователь = новый Пользователь(); $ пользователь->имя = "Джон2"; $ пользователь->пароль = "лань"; $ entityManager->сопротивляться($ пользователь); $ entityManager->румянец(); эхо "Пользователь с идентификатором $ user-> id был спасен ".;
Доктрина 1.x следует активный шаблон записи для работы с данными, где учебный класс соответствует таблица базы данных. Например, если программист хотел создать новый объект «Пользователь» в базе данных, ему больше не нужно было бы писать SQL запросы, но вместо этого можно использовать следующий код PHP:
$ пользователь = новый Пользователь(); $ пользователь->имя = "Джон"; $ пользователь->пароль = "лань"; $ пользователь->спасти(); эхо "Пользователь с идентификатором $ user-> id был спасен ".;
Функции
Одной из особенностей Doctrine является низкий уровень конфигурации, необходимый для запуска проекта. Doctrine может генерировать классы объектов из существующей базы данных, а затем программист может указать отношения и добавить пользовательские функции к созданным классам. Нет необходимости создавать или поддерживать сложные XML схемы баз данных, как видно во многих других фреймворках.
Еще одна ключевая особенность Doctrine - возможность дополнительно писать запросы к базе данных в объектно-ориентированном (объектно-ориентированный) Диалект SQL называется DQL (Doctrine Query Language) вдохновлен Hibernate's HQL. В качестве альтернативы QueryBuilder учебный класс (Doctrine_Query в Doctrine 1.x) позволяет строить запросы через свободный интерфейс. Эти интерфейсы предоставляют разработчикам мощные альтернативы SQL, которые сохраняют гибкость и по-прежнему позволяют переключать серверные части базы данных, не требуя дублирования кода.
Однако явное написание запросов не всегда необходимо, поскольку Doctrine выполняет присоединяется и автоматически выбирает связанные объекты. Небольшие проекты можно легко создавать без написания запросов.
Другие примечательные особенности Doctrine:
- поддержка ловушек (методов, которые могут проверять или изменять ввод и вывод базы данных) и прослушивателей событий для структурирования бизнес-логики;
- наследование агрегации столбцов (аналогичные объекты могут храниться в одной таблице базы данных, при этом один столбец типа определяет подтип конкретного объекта - при выполнении запроса всегда возвращается правильный подкласс);
- фреймворк кеширования, использующий несколько бэкэндов, таких как memcached, SQLite или же APC;
- КИСЛОТА транзакции;
- миграции баз данных;
- функция "компиляции" для объединения многих файлов PHP фреймворка в один, чтобы избежать снижения производительности, обычно вызываемого включением множества файлов PHP фреймворка.
История
Доктрина была основана Конста Вестериненом, также известным как zYne-. Первоначальное обязательство по проекту было принято 13 апреля 2006 г. По мере того, как проект становился более зрелым, его внедрение начало набирать обороты. Вскоре сообщество было активным, и разработка получала регулярные взносы, в том числе от Google Summer of Code проект.
Doctrine 1.0.0 была выпущена 1 сентября 2008 года.[1]
Первая стабильная версия Doctrine 2.0 была выпущена 22 декабря 2010 года после 2,5 лет целенаправленной разработки, начавшейся в начале 2008 года.[2]
Влияния
На Doctrine повлияли десятки проектов и множество разных людей. Наибольшее влияние оказали Ява ORM Спящий режим и ActiveRecord из Рубин на рельсах. Оба этих ORM-решения реализовали полнофункциональное решение на Java и Рубин языков. Цель проекта Doctrine - создать столь же мощное решение для языка PHP для высоконагруженных веб-сайтов, которые должны поддерживать постоянный поток посетителей. Doctrine ORM можно использовать для повышения производительности таких веб-сайтов.
Сообщество
- Есть активный IRC канал, на котором обычно общаются пользователи и разработчики Doctrine. Канал находится на Freenode сеть (irc.freenode.net); название канала #doctrine.
- Список рассылки пользователей: https://groups.google.com/group/doctrine-user
- Список рассылки разработчиков: https://groups.google.com/group/doctrine-dev
- Gitter https://gitter.im/doctrine/doctrine2
Смотрите также
- Propel (PHP)
- Список программ объектно-реляционного сопоставления
- Symfony, а каркас веб-приложений который по умолчанию использует Doctrine
- CodeIgniter, фреймворк с интеграцией, официально поддерживаемый командой Doctrine
- DataEase, язык запросов которого также называется DQL
- Шкипер, инструмент визуализации для Doctrine
- Цепочка методов