Proceso del sistema de tuberías en Laravel

Proceso del sistema de tuberías en Laravel - Amit Merchant - Un blog sobre PHP, JavaScript, etc.

Ejecutar procesos del sistema en Laravel es algo común que todos necesitamos en algún momento. Por ejemplo, puede ejecutar un composer install orden o un npm install orden.

Laravel proporciona un Illuminate\Support\Facades\Process fachada para ejecutar procesos del sistema que es un envoltorio alrededor del Symfony\Component\Process\Process clase. Entonces, por ejemplo, si desea ejecutar un composer install comando, puedes hacerlo así.

use Illuminate\Support\Facades\Process;

$result = Process::run('composer install');

$result->isSuccessful(); // true

Pero a veces es posible que desee canalizar la salida de un comando a otro. Por ejemplo, puede ejecutar un ls -la comando y dirigir la salida de la misma a la grep comando para filtrar archivos que contienen la palabra "php" adentro.

Laravel ahora viene con un pipe método que le permite canalizar la salida de un comando a otro. Así es como podemos usarlo para el ejemplo anterior.

use Illuminate\Support\Facades\Process;

$result = Process::pipe(function (Pipe $pipe) {
    $pipe->command('ls -la');
    $pipe->command('grep -i "php"');
});

// returns the output of the last command
$result->output();
/*
-rw-rw-r--  1 amitmerchant amitmerchant   529 Apr  4 12:59 index.php
drwxrwxr-x  3 amitmerchant amitmerchant  4096 Sep 10  2022 php
drwxrwxr-x  7 amitmerchant amitmerchant  4096 Nov 15 18:20 php8-in-a-nutshell-book
*/

Como puede ver, podemos usar el pipe método para canalizar la salida de un comando a otro. EL pipe El método acepta una devolución de llamada que recibe una instancia del Pipe clase. EL Pipe la clase tiene un command método que acepta el comando a ejecutar.

La salida del último comando es devuelta por el output método de Process fachada.

También puede pasar una serie de comandos a pipe método que se ejecutará en secuencia.

use Illuminate\Support\Facades\Process;

$result = Process::pipe([
    'ls -la',
    'grep -i "php"',
]);

$result->output();

Si quieres conocer otros artículos parecidos a Proceso del sistema de tuberías en Laravel puedes visitar la categoría Código.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Subir

Esta página web utiliza cookies para analizar de forma anónima y estadística el uso que haces de la web, mejorar los contenidos y tu experiencia de navegación. Para más información accede a la Política de Cookies . Ver mas