Библиотека RedBeanPHP.

RedBeanPHP – это мощная ORM для PHP, которая значительно упрощает работу с базами данных.

ORM или Object-relational mapping (Объектно-реляционное отображение) — это технология программирования, которая позволяет преобразовывать несовместимые типы моделей в ООП, в частности, между хранилищем данных и объектами программирования.

ORM используется для упрощения процесса сохранения объектов в реляционную базу данных и их извлечения, при этом ORM сама заботится о преобразовании данных между двумя несовместимыми состояниями.

Установка библиотеки

Библиотека состоит из одного файла. Для работы необходимо расширение PDO. Библиотека поддерживает такие БД, как: MySQL, SQLite и Postgres.

Скачать библиотеку можно с официального сайта: “redbeanphp.com“. Перейдя на сайт, для скачивания библиотеки зайдите во вкладку “Download”. На момент написания статьи авторы библиотеки рекомендуют скачивать версию 5.4:


Библиотека RedBeanPHP.

После скачивания файла, распакуйте его и поместите в ваш проект. С помощью require подключите её в проект. Пример:

require "libs/rb-mysql.php";

Подключение

В проекте создаём файл db.php и подключаемся к БД MySQL:

require "libs/rb-mysql.php";

// localhost - host по умолчанию
// dbname - имя базы данных
// root - логин
// после логина идет пароль

R::setup( 'mysql:host=localhost;dbname=register_rb',
        'root', '' );

// Если после пароля поставить true, тогда функция создания таблиц на лету будет включена
// Если после пароля поставить false, тогда функция создания таблиц на лету будет отключена

// Проверка подключения к БД
if(!R::testConnection()) die('No DB connection!');

Если у Вас другая БД, тогда можете зайти на официальный сайт библиотеки на вкладку “Connection” и там найдете примеры подключения к другим БД.

Создание таблиц и записей

В RedBeanPHP есть уникальная способность создавать таблицы на лету и заносить в них необходимые записи (как включать или отключать эту способность я написал в примере выше). Пример:

// Создаем таблицу users
$user = R::dispense('users');

// добавляем в таблицу необходимые записи
$user->login = $data['login'];
$user->email = $data['email'];
$user->name = $data['name'];
$user->family = $data['family'];

// Сохраняем таблицу
R::store($user);

Удаление записей

Удаление из БД делается так:

// одна запись
R::trash( $book );

// Удалить записи с ID = 6, 7
$ids = [6, 7];
R::trashBatch('book', $ids);

// все записи
R::wipe( 'book' );

Чтение данных

Если нужно получить данные без каких-либо условий, то легче это сделать методами load() и loadAll(). Пример:

// Получаем все записи, ID которых указаны в массиве ids
$ids = [1,2,3];
$books = R::loadAll('book', $ids);
foreach ($books as $book){
  echo $book->title.'<br/>';
}
 
// Получаем одну запись по её ID
$id = 1;
$books = R::load('books', $id);
echo $books->title;

Обновление записи

$id = 1;
// Загружаем объект с ID = 1
$book = R::load('book', $id);

// Обращаемся к свойству объекта и назначаем ему новое значение
$book->price = 210;

// Сохраняем объект
R::store($book);

Поиск данных

Если вы не знаете идентификатор бина, вы можете искать бины, используя метод find():

$min_price = 250;
$books = R::find('book', 'price > ?', [$min_price]);
 
$search = 'строка';
$books = R::find('book', 'author LIKE ?', ["%$search%"]);
 
$id = 1;
$min_price = 300;
$books = R::find('book', 'id > :id AND price < :price', [':price' => $min_price, ':id' => $id]);
 
$ids = [1, 3, 5];
$books = R::find('book', 'id IN (' . R::genSlots($ids) . ')', $ids);

Если необходимо получить только одну запись, используем метод findOne():

$id = 1;
$book = R::findOne('book', 'id = ?', [$id]);
 
$title = 'гостья из будущего';
$book = R::findOne('book', 'title = ?', [$title]);

Если необходимо получить все данные без особых условий, используем метод findAll():

$books = R::findAll('book');
 
$limit = 5;
$books = R::findAll('book', 'ORDER BY id ASC LIMIT ?', [$limit]);

На этом наше небольшое знакомство с данной библиотекой окончено, но вы можете зайти на официальный сайт библиотеки и изучить официальную документацию.

 

 
Поделиться в facebook
Facebook
Поделиться в twitter
Twitter
Поделиться в vk
VK
Поделиться в google
Google+
Поделиться в email
Email

2 ответа к “Библиотека RedBeanPHP.”

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Группа в VK

Помощь проекту

Обнаружили опечатку?

Сообщите нам об этом, выделите текст с ошибкой и нажмите Ctrl+Enter, будем очень признательны!

Свежие статьи

Похожие статьи

Фреймворк Yii

Фреймворк Yii

Yii — это высокоэффективный основанный на компонентной структуре PHP-фреймворк для разработки масштабных веб-приложений. Он позволяет максимально применить концепцию повторного использования кода и может существенно ускорить

 
Безопасное хеширование паролей в PHP.

Безопасное хеширование паролей в PHP.

Такие хеширующие алгоритмы как MD5, SHA1 и SHA256 были спроектированы очень быстрыми и эффективными. При наличии современных технологий и оборудования, стало довольно просто выяснить результат

 
PHP: PDO, работа с MySQL.

PHP: PDO, работа с MySQL.

PDO – PHP Data Objects – это прослойка, которая предлагает универсальный способ работы с несколькими базами данных. Смысл PDO в том, что отсутствует привязка к

 

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: