Heim > Backend-Entwicklung > PHP-Tutorial > Vereinfachte Stream -Response -Handhabung in Laravel

Vereinfachte Stream -Response -Handhabung in Laravel

Johnathan Smith
Freigeben: 2025-03-05 16:25:12
Original
977 Leute haben es durchsucht

Simplified Stream Response Handling in Laravel

Laravels optimierter Ansatz zur Handhabung des HTTP -Streams vereinfacht die Datei -Downloads und -übertragungen erheblich. Zuvor beinhaltete das Verwalten von Streams, insbesondere für Datei -Downloads aus externen Quellen, mehrere Schritte und Conversions. Jetzt bietet die resource() -Methode eine prägnante Lösung.

Dies ist besonders vorteilhaft, wenn Sie Dateien auf dem Speicher Ihrer Anwendung speichern. Die resource() -Methode beseitigt die Notwendigkeit temporärer Dateien und komplexer Stream -Manipulationen.

Hier ist ein Vergleich der alten und neuen Methoden:

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());
Nach dem Login kopieren

Lassen Sie uns ein praktisches Beispiel innerhalb eines Dokumentverarbeitungsdienstes untersuchen:

<?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;
        }
    }
}
Nach dem Login kopieren

Die resource() -Methode vereinfacht die Stream -Handhabung in Laravel dramatisch, was zu saubereren, effizienteren Dateioperationen führt.

Das obige ist der detaillierte Inhalt vonVereinfachte Stream -Response -Handhabung in Laravel. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage