Работа с Eloquent ORM в PHP
Доброго времени суток! Я уже рассказывал, что такое ORM. Вот здесь находится статья. А в данной статье я покажу как просто можно настроить ORM в PHP для выборки и сохранения значений в базе. При этом имейте ввиду, что знание ORM библиотеки не заменяет знание обычного SQL, а наоборот дополняет.
В качестве примере в статье будет использоваться библиотека из PHP фреймворка Laravel - Eloquent ORM. Это очень мощная библиотека для работы с базой данных в PHP. С помощью нее вы можете запрашивать данные из БД, сохранять их, фильтровать извлекаемые данные - и много чего еще. Т.е. это такая абстракция над языком запросов к базе.
Итак, приступим. Для начала установим саму библиотеку Eloquent:
$ composer require illuminate/database
Теперь настроим подключение к БД:
<?php
use Illuminate\Database\Capsule\Manager as Capsule;
// настройка библиотеки
$capsule = new Capsule();
// настройка - из переменных окружения
$capsule->addConnection([
'driver' => env('DB_ADAPTER'), // mysql - адаптер
'host' => env('DB_HOST'), // localhost - сервер БД
'database' => env('DB_NAME'), // test - название БД
'username' => env('DB_USER'), // root - пользователь
'password' => env('DB_PASS'), // - пароль
'charset' => env('DB_CHARSET'), // utf8mb4 - кодировка
'collation' => env('DB_COLLATION'), // utf8mb4_unicode_ci
'prefix' => env('DB_PREFIX'), //
]);
$capsule->bootEloquent();
А теперь создадим модель:
<?php
// подключаем базовый класс
use Illuminate\Database\Eloquent\Model;
// модель статьи
class Article extends Model
{
// название таблицы БД во множественном числе
protected $table = 'articles';
/**
* Поля таблицы в которые разрешена запись, далее покажу, что это такое
*
* @var array
*/
protected $fillable = [
'name', 'text'
];
}
И используем так:
// создаем статью в БД
$article = Article::create([
'name' => 'Название статьи',
'text' => 'Текст статьи...'
])
Как видно из примера выше мы создали новую статью в БД, просто передав в метод create массив данных. Причем в БД запишутся данные из тех ключей массива, которые есть в массив $fillable модели.
// запросим все статьи из БД
$articles = Article::all();
print_r($articles);
Вот так просто можно сохранять данные в БД с помощью PHP библиотеки Eloquent ORM. При этом, учтите, что знать SQL все равно надо, так некоторые запросы все равно придется писать на нем. В остальном же, описанная выше библиотека - это прекрасная возможность сократить портянку стандартного SQL на вставку, выборку и т.д.
-
- Михаил Русаков
Комментарии (0):
Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.