Мемоізація та кешування функцій за допомогою цього PHP-пакету

1
Перекладено ШІ
Оригінал: Laravel News
Оновлено: 04 березня, 2026
Збирання та кешування результатів функцій можуть суттєво підвищити продуктивність вашого додатку. Дізнайтеся, як це зробити за допомогою бібліотеки Memoize для PHP. У нашій статті ми розглянемо можливості цієї легкої бібліотеки та її здатність спростити складні обчислення у ваших проектах

Memoize — це легка бібліотека для PHP, яка спрощує кешування функцій та їх запам'ятовування. Вона може значно підвищити продуктивність вашого застосунку, зберігаючи результати дорогих викликів функцій, щоб повторні запити з тими ж аргументами повертались миттєво без повторної обробки:

// Використання допоміжної функції
$result1 = memoize()->memo('expensive_calc', function () {
    sleep(2); // Симулює затратну операцію
    return 42 * 1.5 + rand(1, 100);
});
 
// Другий виклик з тим же ключем: повертає закешований результат (швидко)
$result2 = memoize()->memo('expensive_calc', function () {
    sleep(2); // Цей код не виконається
    return 99999; // Це значення буде ігноруватися, повернеться закешоване
});
 
// $result1 === $result2 (одинакове закешоване значення)
 
// Інший ключ: функція виконується знову
$result3 = memoize()->memo('another_calc', function () {
    return 'інше обчислення';
});

Цей пакет запам'ятовування є корисним для оптимізації продуктивності, зокрема для затратних запитів до бази даних, API, завантаження конфігурацій, обробки файлів та інших задач:

$getUserData = function ($userId) {
    // Затратний запит до бази даних або API
    return database()->query("SELECT * FROM users WHERE id = ?", [$userId]);
};
 
// Кешування даних користувача за ID
$user = memoize()->memo("user_$userId", $getUserData);
$sameUser = memoize()->memo("user_$userId", $getUserData); // З кешу

# Основні можливості

Ви можете почати використовувати цей пакет на GitHub: tomloprod/memoize

Схоже: Якщо ви використовуєте фреймворк Laravel, зверніть увагу на допоміжну функцію once() та Memoized Cache Driver. Spatie також пропонує пакет spatie/once, який є магічною функцією запам'ятовування для ваших PHP проектів

Популярні

Logomark Logotype

Intervention Image: потужний інструмент для роботи з зображеннями у Laravel

Досліджуйте потужний пакет Intervention Image для PHP, який виводить редагування зображень на новий рівень з оновленою версією 3. Чи готові ви дізнатися, які нові можливості та функції чекають на вас у цьому інструменті

Logomark Logotype

Створення MCP-серверів на PHP

Модельний контекстний протокол (MCP) відкриває нові горизонти в інтеграції AI-додатків з PHP. Дізнайтеся, як легко створити сервер, що відповідає MCP, та які можливості відкриваються для вашого проєкту

Logomark Logotype

Що нового в PHP 8.5

PHP 8.5 обіцяє безліч нових можливостей, таких як оператор Pipe, функції `array_first()` та `array_last()`, а також нове розширення URI. Чи готові ви дізнатися, як ці функції можуть спростити вашу розробку? Читайте далі, щоб дізнатися більше про ці захоплюючі нововведення