GNU/Linux >> Linux の 問題 >  >> Linux

laravelコントローラーから外部シェルコマンドを実行するには?

PHP アプリケーションからコマンドを実行したい場合は、Symfony Process Component を使用することをお勧めします:

<オール>
  • composer require symfony/process を実行

  • use Symfony\Component\Process\Process; でクラスをファイルにインポートします

  • コマンドを実行します:

    $process = new Process(['rm', '/var/www/html/test.html']);
    
    $process->run();
    
  • Laravel を使用している場合は、ステップ 1 をスキップできます。

    または、(php を実行しているプロセスに適切なパーミッションがある場合)、単純に PHP の unlink() 関数を使用してファイルを削除することもできます:

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

    フレームワークがすでに提供しているものでこれを行います:

    1) 最初にコマンド クラスを生成します:

    php artisan make:command TestClean
    

    これにより、App\Console\Commands にコマンド クラスが生成されます

    次に、そのコマンド クラスのハンドル メソッド内に次のように記述します。

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

    コマンドに名前と説明を付けて実行します:

    php artisan list
    

    コマンドがリストされていることを確認するためだけに。

    2) コントローラーで Artisan ファサードをインポートします。

    use Artisan;
    

    3) コントローラに次のように記述します:

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

    さらなる使用については、ドキュメントを参照してください:https://laravel.com/docs/5.7/artisan#generating-commands


    Linux
    1. 履歴に保存せずにシェルでコマンドを実行するにはどうすればよいですか? [Linuxのヒント]

    2. `cd`外部コマンドのポイント?

    3. OSに基づいてBashコマンドを実行するために1つのVimコマンドをマップする方法は?

    1. シェルスクリプトを使用してgnuplotでコマンドを実行する方法は?

    2. バックグラウンドで UNIX / Linux コマンド (およびシェル スクリプト) を実行する 5 つの方法

    3. WINEで実行中のプログラムからシェルコマンドを実行

    1. シェルのコマンド出力から最初/最後の「n」行を削除するにはどうすればよいですか?

    2. コマンドラインから PHP コードを実行するにはどうすればよいですか?

    3. 外部のpythonスクリプトでDjangoシェルでコードを実行するには?