• laravel5.4之artisan使用总结一


    Artisan是laravel自带的命令行接口:

    php artisan list

    编写命令

    生成命令:

    • 可以使用Artisan命令,
    php artisan make:command ConsoleTest

    执行完这个命令后,会在app/Console/Commands 目录下创建ConsoleTest命令类。会包含默认的属性设置以及所有命令都共有的方法。

    • 需要在ConsoleTest填写这个类的signature和description属性。其中的handle方法会在命令执行时被调用。将所有命令逻辑都放在这个方法里面。
    • 在编写好命令后需要在该命令可以通过Artisan CLI执行之前 注册这个命令。

    如下填写这个类的signature和description属性:

    <?php
    
    namespace AppConsoleCommands;
    
    use AppHttpControllersSettlementController;
    use IlluminateConsoleCommand;
    
    class ConsoleTest extends Command
    {
        /**
         * The name and signature of the console command.
         *
         * @var string
         */
        protected $signature = 'console:test';
    
        /**
         * The console command description.
         *
         * @var string
         */
        protected $description = 'Command description';
    
        /**
         * Create a new command instance.
         *
         * @return void
         */
        public function __construct()
        {
            parent::__construct();
        }
    
        /**
         * Execute the console command.
         *
         * @return mixed
         */
        public function handle()
        {
           //TODO 需要的一些逻辑
    
        }
    }

    闭包命令:

    在app/Console/Kernel.php文件的comands方法中,Laravel加载了routes/console.php文件。

    <?php
    
    namespace AppConsole;
    
    use IlluminateConsoleSchedulingSchedule;
    use IlluminateFoundationConsoleKernel as ConsoleKernel;
    
    class Kernel extends ConsoleKernel
    {   /**
         * Register the Closure based commands for the application.
         *
         * @return void
         */
        protected function commands()
        {
            require base_path('routes/console.php');
        }
    }

    注册命令:

    • 在命令编写后,需要注册到Artisan才可以使用,需要在app/Console/Kernel.php 文件中完成。
    • 在这个文件中的commands属性中,在里面注册命令,只需要将上面ConsoleTest所在路径写上,如下:
    /**
         * The Artisan commands provided by your application.
         *
         * @var array
         */
        protected $commands = [
            'AppConsoleCommandsConsoleTest'
        ];
    • 最后在终端里cd到项目根目录下,执行如下命令
    php artisan console:test

    会去执行上面ConsoleTest 中的handle()方法。

  • 相关阅读:
    CF1312G Autocompletion
    UOJ#11. 【UTR #1】ydc的大树
    CF51F Caterpillar
    CF295D Greg and Caves
    CF288E Polo the Penguin and Lucky Numbers
    CF401D Roman and Numbers
    CF543D Road Improvement
    CF938F Erasing Substrings
    [AGC024E] Sequence Growing Hard
    CF261D Maxim and Increasing Subsequence
  • 原文地址:https://www.cnblogs.com/linst/p/8044971.html
Copyright © 2020-2023  润新知