menawarkan penyelesaian ringkas. resource()
menghapuskan keperluan untuk fail sementara dan manipulasi aliran kompleks. resource()
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());
<?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; } } }
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!