Стабильный релиз | 5.7 / 3 апреля 2021 г. ( 2021-04-03 ) |
---|---|
Репозиторий |
|
Написано в | PHP |
Операционная система | Кроссплатформенный |
Тип | Библиотека объектно-реляционного отображения |
Лицензия | BSD GPLv2 |
Веб-сайт | redbeanphp.com |
RedBeanPHP — это независимое, бесплатное, лицензированное BSD программное обеспечение с открытым исходным кодом для объектно-реляционного отображения (ORM), написанное Габором де Муи. Это автономная библиотека, а не часть какой-либо структуры. RedBeanPHP — это объектно-реляционный преобразователь «на лету», это означает, что нет предварительной настройки. Система полностью полагается на соглашения и адаптирует схему базы данных в соответствии с потребностями программы. Таким образом, она достигает баланса между NoSQL и традиционными решениями RDBMS .
RedBeanPHP отличается от других систем ORM , поскольку не требует настройки в XML , YAML или JSON . Он адаптирует схему базы данных в соответствии с потребностями программы. Все таблицы и столбцы создаются «на лету», без предварительной настройки или сопоставления. Он автоматически добавляет столбцы в таблицы, если необходимо, и изменяет тип столбца в соответствии с требованиями к его содержимому. Когда разработчик завершает разработку и больше не ожидается никаких изменений схемы, схему можно заморозить для развертывания в производственных средах. После заморозки базы данных больше никаких изменений схемы не происходит. Связи между таблицами сопоставляются таким же образом: по соглашению. Например, чтобы создать связь «один ко многим» между двумя таблицами, нужно назначить массив свойству с именем целевой таблицы. Это автоматически создает таблицу, а также требуемые столбцы.
Пример кода, демонстрирующий простую операцию CRUD и отношение:
R :: setup (); $movie = R :: dispense ( 'movie' ); $movie -> title = 'Фасоль в космосе' ; $character = R :: dispense ( 'character' ); $character -> name = 'hero' ; $movie -> ownCharacterList [] = $character ; $id = R :: store ( $movie );
RedBeanPHP — первая известная библиотека, которая приняла подход «на лету» к ORM. Таким образом, она оказала большое влияние на другие библиотеки. RedBeanPHP вдохновила многие другие проекты принять этот подход к отображению объектов. Похожие библиотеки появились для .NET , [1] Python , [2] JavaScript , [3] Java , [4] Erlang , [5] ColdFusion [6] и Objective-C . [7]
Будучи независимой библиотекой, модули плагинов были разработаны для различных популярных фреймворков, таких как: Laravel , [8] CodeIgniter , [9] Kohana, [10] Silex [11] и Zend Framework . [12] Помимо модулей интеграции, некоторые фреймворки поставляются с RedBeanPHP «из коробки», например, The Nibble Framework. [13]
RedBeanPHP впервые появился в 2009 году на GitHub. [14] Первая общедоступная версия была 0.3.3. RedBeanPHP был разработан Габором де Муи, разработчиком программного обеспечения из Нидерландов . Поскольку RedBeanPHP очень доступен и не скрывает язык SQL , он используется университетами для обучения программированию баз данных. [15] Согласно сообщению на форуме самого Габора, библиотека была вдохновлена тирадой о системах объектно-реляционного отображения Теда Ньюарда, названного «ORM, Вьетнам компьютерной науки». [16] [17]
На основании обзоров и презентаций, доступных в Интернете, общее восприятие RedBeanPHP, по-видимому, положительное. [18] [19] [20] [21] Однако библиотека менее подходит для проектов с существующими базами данных и не поддерживает пользовательские сопоставления таблиц и столбцов, например, невозможно использовать префиксы таблиц. [22] Кроме того, ни один из основных фреймворков не включил эту библиотеку.