工匠拉拉維爾

Artisan 提供了一組用於產生 Laravel 專案的有用指令。

Laravel 和 Artisan 框架旨在透過使用 PHP 語言編寫程式碼來建立新的 Artisan 命令。

在本文中,我們將了解如何定義和編寫新的 Artisan 命令。

預計閱讀時間: 3 minuti

Laravel 工匠 11

要建立新的 Artisan 命令,我們使用以下命令

php artisan make:command <command-name>

該命令將在目錄中建立一個新的命令類 app/Console/Commands。如果我們的 laravel 專案中不存在該目錄,它將在我們第一次執行命令時自動創建 artisan make:command.

工匠 是一個 command line 的效用 Laravel,廣泛用於設置 migrations, routes, queue, controllers 還有更多。

有關活動的完整列表 工匠 Laravel 可以,在 Laravel 專案目錄中執行以下命令:

php artisan

    使 是一個重要的命令 工匠,用於建立自訂 Artisan 命令。

     make
      make:channel                         Create a new channel class
      make:chart                           Creates a new chart
      make:command                         Create a new Artisan command
      make:controller                      Create a new controller class
      make:event                           Create a new event class
      make:exception                       Create a new custom exception class
      make:factory                         Create a new model factory
      make:job                             Create a new job class
      make:listener                        Create a new event listener class
      make:mail                            Create a new email class
      make:middleware                      Create a new middleware class
      make:migration                       Create a new migration file
      make:model                           Create a new Eloquent model class
      make:notification                    Create a new notification class
      make:observer                        Create a new observer class
      make:policy                          Create a new policy class
      make:provider                        Create a new service provider class
      make:request                         Create a new form request class
      make:resource                        Create a new resource
      make:rule                            Create a new validation rule
      make:seeder                          Create a new seeder class
      make:test                            Create a new test class

      命令 工匠 Laravel 它們也可以在 CRON 中安排。

      Artisan Laravel 的起源

      如果我們查看應用程式的來源 工匠 內拉目錄 Illuminate\Console,你會注意到類別本身擴充了 Symfony\Component\Console\Application.

      雖然 工匠 您使用最著名的控制台組件 Symfony的,仍然有一些常用方法,其別名類似於 Laravel。你還是會感覺自己在原生開發 Laravel.

      Artisan 自訂指令

      運用 Laravel,您可以輕鬆創建 command di 工匠 個性化。只需在控制台中輸入以下命令 工匠 您的專案的建立一個新的自訂命令(命令名稱後面 make:command):

      php artisan make:command <command_name>

        現在打開終端機並執行以下命令。

        php artisan make:command CreateEmployee

          執行完上述命令後,您將在目錄中獲得一個文件 應用程式/控制台/命令 名稱為“CreateEmployee”。這是代碼:

          <?php
          
          namespace App\Console\Commands;
          
          use Illuminate\Console\Command;
          
          class CreateEmployee extends Command
          {
             /**
              * The name and signature of the console command.
              *
              * @var string
              */
             protected $user = 'app:CreateEmployee';
          
             /**
              * The console command description.
              *
              * @var string
              */
             protected $description = 'Command description';
          
             /**
              * Execute the console command.
              *
              * @return mixed
              */
             public function handle()
             {
                 //
             }
          }

            現在是時候更新指令了 Laravel 創建完成後,我們將程式碼寫入方法中 handle(), 中的任何參數 $signature 以及中的描述 $description.

            在handle方法中,我們將定義$user來建立管理員,定義$description來建立具有管理員角色的使用者帳號。透過定義這些,我們還需要更新使用者表中的角色欄位。

              Migration

              我們首先使用以下命令建立遷移表和模型:

              php artisan make:model Employee -m

              這將創建模型 Employee 以及表的遷移 employees。現在檢查遷移資料夾,您將看到新建立的遷移表。您也可以自訂功能 up() e down() 為了您的方便。

              Model

              現在您必須更新 模型 使用以下程式碼:

              protected $fillable = [
                 'name', 'email', 'password', 'role'
              ];

                之後就可以升級了 handle() 根據所需的要求:

                $newuser = [
                           'name' => 'AYX',
                           'email' => 'WYZ@domain.com',
                           'password' => bcrypt('secret'),
                           'role' => 'Manager'
                       ];

                相關閱讀

                Ercole Palmeri

                作者