Rumah > pembangunan bahagian belakang > tutorial php > Pengendalian tindak balas aliran mudah di Laravel

Pengendalian tindak balas aliran mudah di Laravel

Johnathan Smith
Lepaskan: 2025-03-05 16:25:12
asal
979 orang telah melayarinya

Simplified Stream Response Handling in Laravel

Pendekatan yang diselaraskan Laravel ke pengendalian aliran HTTP dengan ketara memudahkan muat turun dan pemindahan fail. Sebelum ini, menguruskan aliran, terutamanya untuk muat turun fail dari sumber luaran, melibatkan pelbagai langkah dan penukaran. Sekarang, kaedah

menawarkan penyelesaian ringkas. resource()

Ini sangat bermanfaat apabila menyimpan fail ke storan aplikasi anda. Kaedah

menghapuskan keperluan untuk fail sementara dan manipulasi aliran kompleks. resource()

inilah perbandingan kaedah lama dan baru:

use Illuminate\Support\Facades\Http;
use Illuminate\Support\Facades\Storage;

// Older, more complex approach
$response = Http::get($url);
Storage::put('file.pdf', StreamWrapper::getResource(
    $response->toPsrResponse()->getBody()
));

// New, simplified approach using resource()
Storage::put('file.pdf', Http::get($url)->resource());
Salin selepas log masuk
Mari kita periksa contoh praktikal dalam perkhidmatan pemprosesan dokumen:

<?php namespace App\Services;

use Illuminate\Support\Facades\Http;
use Illuminate\Support\Facades\Storage;
use App\Exceptions\DocumentProcessingException;
use Exception;
use Illuminate\Support\Facades\Log;

class DocumentProcessor
{
    public function processRemoteDocument(string $documentUrl, string $reference)
    {
        try {
            $response = Http::timeout(30)->get($documentUrl);

            if (!$response->successful()) {
                throw new DocumentProcessingException(
                    "Document retrieval failed: {$response->status()}"
                );
            }

            // Store the original document
            $originalPath = "documents/{$reference}/original.pdf";
            Storage::put($originalPath, $response->resource());

            // Create a backup
            Storage::disk('backup')->writeStream(
                $originalPath,
                Storage::readStream($originalPath)
            );

            return [
                'reference' => $reference,
                'size' => Storage::size($originalPath),
                'path' => $originalPath
            ];
        } catch (Exception $e) {
            Log::error('Document processing error', [
                'url' => $documentUrl,
                'reference' => $reference,
                'error' => $e->getMessage()
            ]);

            throw $e;
        }
    }
}
Salin selepas log masuk
kaedah

secara dramatik memudahkan pengendalian aliran di Laravel, menghasilkan operasi fail yang lebih bersih dan lebih cekap. resource()

Atas ialah kandungan terperinci Pengendalian tindak balas aliran mudah di Laravel. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan