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

1
Перекладено ШІ
Оригінал: Laravel News
Оновлено: 17 грудня, 2025
Збирання та кешування результатів функцій можуть суттєво підвищити продуктивність вашого додатку. Дізнайтеся, як це зробити за допомогою бібліотеки 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

Що нового в PHP 8.5

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

Logomark Logotype

Laravel Boost — ваш стартовий набір для програмування з використанням штучного інтелекту

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

Logomark Logotype

Перетворення даних у типобезпечні DTO за допомогою пакету Data Model

Досліджуйте новий пакет Data Model для PHP, який спрощує процес гідратації об'єктів без зайвих складнощів! Дізнайтеся, як впровадження типобезпечних об'єктів може революціонізувати ваш підхід до розробки, читаючи нашу статтю