RedBeanPHP
Стабильная версия | 5,7
/ 3 апреля 2021 г. |
---|---|
Репозиторий | |
Написано в | PHP |
Операционная система | Кросс-платформенный |
Тип | объектно-реляционного сопоставления Библиотека |
Лицензия | БСД GPLv2 |
Веб-сайт | Redbeanphp |
RedBeanPHP — это независимое бесплатное BSD (ORM) с открытым исходным кодом, имеющее лицензию программное обеспечение объектно-реляционного картографирования , написанное Габором де Муой . Это отдельная библиотека, не являющаяся частью какой-либо структуры. RedBeanPHP — это объектно-реляционный преобразователь «на лету», это означает, что предварительная настройка не требуется. Система полностью полагается на соглашения и адаптирует схему базы данных в соответствии с потребностями программы. Таким образом, достигается баланс между NoSQL и традиционными решениями РСУБД .
Функции
[ редактировать ]RedBeanPHP отличается от других систем ORM , поскольку не требует настройки в XML , YAML или JSON . Он адаптирует схему базы данных в соответствии с потребностями программы. Все таблицы и столбцы создаются «на лету», без предварительной настройки или сопоставления. При необходимости он автоматически добавляет столбцы в таблицы и изменяет тип столбца в соответствии с требованиями к его содержимому. Когда разработчик завершит разработку и больше не ожидается изменений схемы, схему можно заморозить для развертывания в производственных средах. После заморозки базы данных изменений схемы больше не происходит. Отношения между таблицами отображаются одинаково: по соглашению. Например, чтобы создать связь «один ко многим» между двумя таблицами, присваивается массив свойству, имеющему имя целевой таблицы. При этом автоматически создается таблица, а также необходимые столбцы.
Пример кода, демонстрирующий простую операцию CRUD и отношение:
R::setup();
$movie = R::dispense('movie');
$movie->title = 'Beans in space';
$character = R::dispense('character');
$character->name = 'hero';
$movie->ownCharacterList[] = $character;
$id = R::store($movie);
Влияние
[ редактировать ]RedBeanPHP — первая известная библиотека, использующая оперативный подход к ORM. Таким образом, он имеет большое влияние на другие библиотеки. RedBeanPHP вдохновил многие другие проекты использовать этот подход к отображению объектов. Подобные библиотеки появились и для .NET , [ 1 ] Питон , [ 2 ] JavaScript , [ 3 ] Ява , [ 4 ] Эрланг , [ 5 ] КолдФьюжн [ 6 ] и Objective-C . [ 7 ]
Интеграция
[ редактировать ]Будучи независимой библиотекой, модули плагинов были разработаны для различных популярных фреймворков, таких как: Laravel , [ 8 ] КодИгнитер , [ 9 ] Как место, [ 10 ] Флинт [ 11 ] и Zend Framework . [ 12 ] Помимо модулей интеграции, некоторые платформы поставляются с RedBeanPHP «из коробки», например The Nibble Framework. [ 13 ]
История
[ редактировать ]RedBeanPHP впервые появился на GitHub в 2009 году. [ 14 ] Первой общедоступной версией была 0.3.3. RedBeanPHP был разработан Габором де Муой, разработчиком программного обеспечения из Нидерландов . Поскольку RedBeanPHP очень доступен и не скрывает язык SQL , он используется университетами для обучения программированию баз данных. [ 15 ] Согласно сообщению на форуме самого Габора, создание библиотеки было вдохновлено напыщенной речью Теда Ньюарда о системах реляционного отображения объектов , названной «ORM, Вьетнам информатики». [ 16 ] [ 17 ]
Прием
[ редактировать ]Судя по обзорам и презентациям, доступным в сети, RedBeanPHP в целом воспринимается положительно. [ 18 ] [ 19 ] [ 20 ] [ 21 ] Однако библиотека менее подходит для проектов с существующими базами данных и не поддерживает пользовательские сопоставления таблиц и столбцов, например, невозможно использовать префиксы таблиц. [ 22 ] Кроме того, ни одна из основных платформ не включает эту библиотеку.
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ LimeBean, уровень доступа к данным на основе RedBeanPHP для .NET.
- ^ PyBean, RedBeanPHP вдохновил ORM для Python
- ^ «Тайр» . НПМ . Проверено 2 июля 2016 г.
- ^ RedBean4J RedBean вдохновил ORM для Java (сейчас заброшен)
- ^ RedBean-Эрланг
- ^ RedBeanCF
- ^ CocoaBean, библиотека, вдохновленная RedBeanPHP, для Objective-C.
- ^ Пакет RedBeanPHP для Laravel
- ^ плагин codeigniter-redbean для CodeIgniter Framework
- ^ Модуль интеграции Kohana
- ^ Поставщик услуг RedBean для Silex
- ^ Интеграция Zend Framework с RedBeanPHP
- ^ Nibble Framework: платформа для PHP на основе плагинов.
- ^ [1] Первый коммит RedBeanPHP на Github.
- ^ http://www.cs.wcupa.edu/rkline/wp/mysql-php.html Курс RedBeanPHP факультета компьютерных наук Западно-Честерского университета.
- ^ Сообщение на форуме с подробным описанием вдохновения для RedBeanPHP.
- ^ Вьетнам компьютерных наук. Архивировано 30 апреля 2010 г. в Wayback Machine.
- ^ Обзор SitePoint RedBeanPHP
- ^ Интервью с генеральным директором Зурмо, упоминает RedBeanPHP.
- ^ Обзор RedBeanPHP от Dreamincode
- ^ Обзор RedBeanPHP с существующей базой данных.
- ^ Контрольный список подходящих проектов на сайте RedBeanPHP.