Truffle: як працювати з In-Memory Eloquent моделями у Laravel

Перекладено ШІ 0 Laravel News 10 червня, 2026

Пакет Truffle дозволяє перенести статичні дані моделей Eloquent у базу SQLite в пам'яті, уникаючи зайвих міграцій. Дізнайтеся, як легко налаштувати довідники та прискорити роботу вашого застосунку за допомогою цього інструменту.

Truffle від Waad Mawlood — це пакет для Laravel, який дозволяє моделям Eloquent використовувати базу даних SQLite у пам’яті (in-memory) замість основної бази. Це рішення ідеально підходить для статичних даних та довідників — таких як країни, валюти або ролі. Ви можете робити запити через Eloquent без створення міграцій чи навантаження на основне сховище.

Використовуючи trait Truffle, ви можете визначати дані безпосередньо в моделі або завантажувати їх із зовнішніх файлів, зберігаючи доступ до query builder, зв’язків та атрибутів Eloquent.

# Визначення записів у пам’яті

Найпростіший спосіб використання Truffle — масив $records у моделі. Пакет створює тимчасову таблицю SQLite і заповнює її під час першого звернення до моделі:

use Waad\Truffle\Truffle;
use Illuminate\Database\Eloquent\Model;
 
class Country extends Model
{
    use Truffle;
 
    protected $records = [
        ['id' => 1, 'name' => 'United States', 'code' => 'US'],
        ['id' => 2, 'name' => 'Canada', 'code' => 'CA'],
        ['id' => 3, 'name' => 'United Kingdom', 'code' => 'GB'],
        ['id' => 4, 'name' => 'Jamaica', 'code' => 'JM'],
        ['id' => 5, 'name' => 'Greece', 'code' => 'GR'],
    ];
}

Після цього ви можете працювати з моделлю як зазвичай:

$northAmerica = Country::whereIn('code', ['US', 'JM'])->get();

# Завантаження даних із файлів

Якщо даних багато, Truffle дозволяє зберігати їх у форматах CSV, JSON або XML. Шлях до файлу вказується у властивості $truffleFile:

class Country extends Model
{
    use Truffle;
 
    protected $truffleFile = __DIR__ . '/data/countries.csv';
}

Це дозволяє відокремити дані від логіки коду та зручно керувати ними через систему контролю версій.

# Чітке визначення схеми

Truffle вміє автоматично визначати типи колонок, але для більшої надійності схему можна задати вручну за допомогою enum DataType. Це гарантує цілісність даних та коректне приведення типів:

use Waad\Truffle\Enums\DataType;
 
class Country extends Model
{
    use Truffle;
 
    protected $schema = [
        'id'     => DataType::Id,
        'name'   => DataType::String,
        'code'   => DataType::String,
        'active' => DataType::Boolean,
    ];
}

# Продуктивність та кешування

Для прискорення роботи Truffle підтримує кешування структури та даних таблиці SQLite. Активувати його можна через параметр $truffleCache:

protected $truffleCache = true;
protected $truffleCacheTtl = 3600; // 1 година

Крім того, ви можете зберегти базу даних у конкретний файл замість оперативної пам'яті, визначивши $truffleSqliteFile.

# Встановлення

Встановити пакет можна через Composer:

composer require waad/truffle

Пакет готовий до роботи одразу після додавання trait до ваших моделей. Потрібна версія PHP 7.4 або вище; підтримується Laravel 5.5 і новіші версії.

Більше інформації, повна інструкція та вихідний код доступні на GitHub.

Популярні

Інше, що варто прочитати

38 Оновлено 10 червня, 2026

4 поширені помилки Vite у Laravel

Використання Vite для створення фронтенд-ресурсів у вашому додатку Laravel може бути захоплюючим, але іноді ви можете стикнутися з певними помилками. У цій статті ми розглянемо чотири поширені помилки, з якими ви можете зіткнутися, а також підкажемо способи їх усунення, щоб ви могли знову зосередитися на розробці вашого додатку

11 Оновлено 10 червня, 2026

Генерація документації в Laravel за допомогою штучного інтелекту

Docudoodle — це потужний пакет для генерації документації в Laravel, який допомагає легко аналізувати вашу кодову базу та створювати документацію за допомогою обраного вами AI. Чи готові ви дізнатися, як цей інструмент може спростити вашу роботу з документуванням коду? Читайте далі!

14 Оновлено 10 червня, 2026

Claude Agent тепер інтегрований в AI Assistant для PhpStorm

Ви коли-небудь задумувалися, як полегшити свою роботу в Laravel? У нашій статті ми розглядаємо, як інтеграція Claude Code в PhpStorm може підвищити вашу продуктивність, спростивши процес написання коду та навчання нових розробників. Читайте далі, щоб дізнатися більше про переваги та функціональність цього потужного поєднання