Introduzione
La facadeProcess di Laravel è un wrapper sottile del componente Process di Symfony.
Offre un’API concisa per invocare comandi shell dall’applicazione Laravel e gestirne il risultato.
Avvio di un processo
Process::run() esegue in modo sincrono.
ProcessResult ha metodi per esaminare l’esito.
Lanciare un’eccezione al fallimento
Conthrow() o throwIf() viene lanciata ProcessFailedException per exit code > 0.
Opzioni
Working directory
Standard input
Timeout
Default 60s. Cambia contimeout(). Se scade, viene lanciata ProcessTimedOutException.
CarbonInterval.
forever().
Variabili d’ambiente
Conenv(); le variabili di sistema vengono ereditate.
false.
Disabilitare l’output
Per grandi output usaquietly() per risparmiare memoria.
Output in tempo reale
Passa una closure arun().
Pipeline
Process::pipe() collega output/input tra comandi.
as() identifichi la sorgente dell’output.
Processi asincroni
ConProcess::start().
PID e segnali
Output incrementale
Verifica del timeout
Processi concorrenti
ConProcess::pool().
concurrently() avvia e attende in una riga.
Nomi per i processi
Test
Fake dei processi
Fake per comandi specifici
Sequenze
Asserzioni
| Metodo | Descrizione |
|---|---|
Process::assertRan('command') | Il comando è stato eseguito |
Process::assertNotRan('command') | Il comando non è stato eseguito |
Process::assertRan(fn) | Verifica dettagli con closure |
Process::assertRanTimes('command', 3) | Numero di esecuzioni |
Prevenzione di processi sfuggiti
Pagine correlate
Console Artisan
Crea comandi personalizzati che invocano processi.
Code
Confronto con l’elaborazione asincrona.