Maison >développement back-end >tutoriel php >Manipulation de la réponse au courant simplifié dans Laravel
L'approche rationalisée de Laravel à la gestion des flux HTTP simplifie considérablement les téléchargements et les transferts de fichiers. Auparavant, la gestion des flux, en particulier pour les téléchargements de fichiers à partir de sources externes, a impliqué plusieurs étapes et conversions. Maintenant, la méthode resource()
offre une solution concise.
Ceci est particulièrement bénéfique lors de l'enregistrement des fichiers vers le stockage de votre application. La méthode resource()
élimine le besoin de fichiers temporaires et de manipulations de flux complexes.
Voici une comparaison des anciennes et nouvelles méthodes:
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());
Examinons un exemple pratique au sein d'un service de traitement des documents:
<?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; } } }
La méthode resource()
simplifie considérablement la manipulation des flux dans Laravel, entraînant des opérations de fichiers plus propres et plus efficaces.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!