Skip to main content

Introduzione

La facade Process 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.
L’istanza ProcessResult ha metodi per esaminare l’esito.

Lanciare un’eccezione al fallimento

Con throw() o throwIf() viene lanciata ProcessFailedException per exit code > 0.

Opzioni

Working directory

Standard input

Timeout

Default 60s. Cambia con timeout(). Se scade, viene lanciata ProcessTimedOutException.
Anche con CarbonInterval.
Disabilitalo con forever().
Idle timeout (nessuna uscita per N s):

Variabili d’ambiente

Con env(); le variabili di sistema vengono ereditate.
Per rimuovere una variabile ereditata usa false.

Disabilitare l’output

Per grandi output usa quietly() per risparmiare memoria.

Output in tempo reale

Passa una closure a run().

Pipeline

Process::pipe() collega output/input tra comandi.
Puoi anche passare un array di stringhe.
Con as() identifichi la sorgente dell’output.

Processi asincroni

Con Process::start().

PID e segnali

Output incrementale

Aspettare fino a un output specifico:

Verifica del timeout

Processi concorrenti

Con Process::pool().
concurrently() avvia e attende in una riga.

Nomi per i processi

Segnale all’intero pool:

Test

Fake dei processi

Personalizza output ed exit code:

Fake per comandi specifici

Sequenze

Asserzioni

Prevenzione di processi sfuggiti

Pagine correlate

Console Artisan

Crea comandi personalizzati che invocano processi.

Code

Confronto con l’elaborazione asincrona.
Ultima modifica il 13 luglio 2026