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());
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; } } }
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!