Функція стрімінгових відповідей у Laravel дозволяє ефективно обробляти великі обсяги даних, поступово відправляючи інформацію в міру її генерації. Це допомагає зменшити використання пам'яті та покращує швидкість відповіді.
Route::get('/stream', function () {
return response()->stream(function () {
foreach (range(1, 100) as $number) {
echo "Line {$number}\n";
ob_flush();
flush();
}
}, 200, ['Content-Type' => 'text/plain']);
});
Розглянемо практичний приклад експорту великих даних у форматі CSV:
<?php
namespace App\Http\Controllers;
use App\Models\Order;
use Illuminate\Support\Facades\DB;
class ExportController extends Controller
{
public function exportOrders()
{
return response()->stream(function () {
// Виводимо заголовки CSV
echo "Order ID,Customer,Total,Status,Date\n";
ob_flush();
flush();
// Обробляємо замовлення частинами для збереження пам'яті
Order::query()
->with('customer')
->orderBy('created_at', 'desc')
->chunk(500, function ($orders) {
foreach ($orders as $order) {
echo sprintf(
"%s,%s,%.2f,%s,%s\n",
$order->id,
str_replace(',', ' ', $order->customer->name),
$order->total,
$order->status,
$order->created_at->format('Y-m-d H:i:s')
);
ob_flush();
flush();
}
});
}, 200, [
'Content-Type' => 'text/csv',
'Content-Disposition' => 'attachment; filename="orders.csv"',
'X-Accel-Buffering' => 'no'
]);
}
}
Стрімінгові відповіді дозволяють ефективно обробляти великі обсяги даних, зберігаючи низьке споживання пам'яті та забезпечуючи миттєвий зворотний зв'язок для користувачів.
У сучасній веб-розробці аутентифікація є ключовою для захисту додатків і даних користувачів. Дізнайтеся, як модуль nuxt-sanctum-authentication спростить інтеграцію між Nuxt 3 та Laravel Sanctum, забезпечуючи надійний і зручний спосіб реалізації аутентифікації для вашого проєкту
Ви знали, що в одному додатку Laravel можна реалізувати кілька API? У нашій статті ви дізнаєтеся, як за допомогою Scramble легко документувати різні версії API та налаштувати доступ до документації, щоб зробити її публічною або приватною. Читайте далі, щоб дізнатися більше
Встановлення Xdebug може бути складним завданням, але в цій статті ми розкриємо, як швидко та просто налаштувати його за допомогою Docker на прикладі Laravel. Дочитайте до кінця, щоб дізнатися, як за кілька хвилин зробити Xdebug вашим надійним помічником у розробці