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 проектів
PHP 8.5 обіцяє безліч нових можливостей, таких як оператор Pipe, функції `array_first()` та `array_last()`, а також нове розширення URI. Чи готові ви дізнатися, як ці функції можуть спростити вашу розробку? Читайте далі, щоб дізнатися більше про ці захоплюючі нововведення
Вперше у світі Laravel з'являється можливість, яка значно спростить ваше повсякденне програмування завдяки новому пакету Laravel Boost. Читайте статтю, щоб дізнатися, як посилена інтеграція штучного інтелекту може підвищити ефективність вашої роботи та оптимізувати створення проектів у Laravel
Досліджуйте новий пакет Data Model для PHP, який спрощує процес гідратації об'єктів без зайвих складнощів! Дізнайтеся, як впровадження типобезпечних об'єктів може революціонізувати ваш підхід до розробки, читаючи нашу статтю