GNU/Linux >> Tutoriels Linux >  >> Linux

Comment exécuter des commandes shell externes à partir du contrôleur laravel ?

Si vous souhaitez exécuter des commandes à partir de votre application PHP, je vous recommande d'utiliser le composant de processus Symfony :

  1. Exécutez composer require symfony/process

  2. Importez la classe dans votre fichier avec use Symfony\Component\Process\Process;

  3. Exécutez votre commande :

    $process = new Process(['rm', '/var/www/html/test.html']);
    
    $process->run();
    

Si vous utilisez Laravel, vous devriez pouvoir ignorer l'étape 1.

Alternativement, (si le processus exécutant php a les bonnes autorisations), vous pouvez simplement utiliser la fonction unlink() de PHP pour supprimer le fichier :

unlink('/var/www/html/test.html');
 

Je ferais cela avec ce que le framework fournit déjà :

1) Générez d'abord une classe de commandes :

php artisan make:command TestClean

Cela générera une classe de commande dans App\Console\Commands

Ensuite, dans la méthode handle de cette classe de commande, écrivez :

@unlink('/var/www/html/test.html');

Donnez un nom et une description à votre commande et exécutez :

php artisan list

Juste pour confirmer que votre commande est répertoriée.

2) Dans votre contrôleur, importez la façade Artisan.

use Artisan;

3) Dans votre manette écrivez alors ce qui suit :

Artisan::call('test:clean');

Veuillez vous référer à la documentation pour d'autres utilisations :https://laravel.com/docs/5.7/artisan#generating-commands


Linux
  1. Comment exécuter une commande dans Shell sans l'enregistrer dans l'historique ? [Astuces Linux]

  2. Comment supprimer les premières/dernières lignes 'n' de la sortie de la commande dans Shell ?

  3. Comment récupérer un travail en arrière-plan à partir d'un shell précédent ??

  4. 5 façons d'exécuter des commandes UNIX / Linux (et des scripts shell) en arrière-plan

  5. Exécuter les commandes Shell à partir du programme exécuté dans WINE

Comment accéder au shell ou exécuter des commandes externes depuis Vim

Comment exécuter une commande Shell avec Python

Comment exécuter automatiquement les scripts et commandes de démarrage Linux

Comment exécuter des commandes Shell via un serveur HTTP

Comment supprimer une commande de l'historique sous Linux

Comment exécuter une commande dans un script shell ?