Danh sách Tutorial

Debug Laravel Artisan Command với PHPStorm


Chào các bạn, sau tutorial “Hướng dẫn debug Laravel với PHPStorm và Xdebug“, để debug một ứng dụng, website được lập trình bằng Laravel. Tuy nhiên không phải ứng dụng nào cũng là 1 website, mà có thể nó là 1 cái batch chạy ngầm bên dưới chẳng hạn. Laravel hỗ trợ 1 công cụ quản lý CLI rất mạnh là Artisan Command. Nó là tiền đề để Laravel trở thành PHP Framework tốt nhất hiện nay.

Hôm nay mình sẽ viết 1 ứng dụng nho nhỏ chạy Artisan Command, và hướng dẫn các bạn debug ứng dụng đó trên PHPStorm.

Tiền đề của bài viết này các bạn cần chuẩn bị

Chú ý: Phiên bản PHPStorm của mình là bản PHPStorm 2021.1 (có bản quyền nha), trên các phiên bản khác 1 số config, tùy chọn có thể khác nhau đôi chút.

Bước 1: Thiết lập PHP CLI Interpreter

Mở PHPStorm => Chọn [ File ] => [ Settings ] để vào hộp thoại “Settings” hoặc bấm tổ hợp phím “Ctrl + Alt + S

Sau đó chọn mục cài đặt là [ PHP ] => Mục “CLI Interpreter” là phiên bản CLI bạn muốn debug => Bấm phím [ OK ]

Bước 2: Tạo một Laravel Artisan Command

Sử dụng command sau để tạo 1 command / batch đơn giản

php artisan make:command Hello

Nó sẽ tạo 1 file Hello.php trong app/Console/Commands/Hello.php

Và có nội dung mặc định như sau:

<?php

namespace App\Console\Commands;

use Illuminate\Console\Command;

class Hello extends Command
{
    /**
     * The name and signature of the console command.
     *
     * @var string
     */
    protected $signature = 'command:name';

    /**
     * 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 int
     */
    public function handle()
    {
        return 0;
    }
}

Mình chỉnh sửa 1 chút code để thực hiện debug

<?php

namespace App\Console\Commands;

use Illuminate\Console\Command;

class Hello extends Command
{
    /**
     * The name and signature of the console command.
     *
     * @var string
     */
    protected $signature = 'hello';

    /**
     * The console command description.
     *
     * @var string
     */
    protected $description = 'A program by vinasupport.com';

    /**
     * Create a new command instance.
     *
     * @return void
     */
    public function __construct()
    {
        parent::__construct();
    }

    /**
     * Execute the console command.
     *
     * @return int
     */
    public function handle()
    {
        $text = 'Hello world from vinasupport.com';
        echo $text;
    }
}

Để chạy đoạn code này trên command line rất đơn giản:

php artisan hello

Bước 3: Tạo cấu hình config để debug Laravel Artisan Command

Trên PHPStorm, bạn vào mục [ Run ] => [ Edit Configurations ] để mở hộp thoại “Run/Debug Configurations

Bấm vào dấu [ + ] => Chọn [PHP Script]

Sau đó các bạn điền các thông tin bên dưới:

  • Name: Tên của cấu hình debug. VD:  Hello
  • File: Browse tới file artisan trong Laravel Project
  • Arguments: Tên command bạn vừa tạo ở bên trên. VD: hello
  • Interpreter: Chọn PHP CLI mà bạn sử dụng để debug.
  • Interpreter Options: Các bạn điền “-dxdebug,develop,trace” với phiên bản của xdebug 3.x.
    Trường hợp sử dụng bản xdebug 2.x thì các bạn điền “dxdebug.remote_enable=1 -dxdebug.remote_autostart=on -dxdebug.remote_mode=req -dxdebug.remote_port=9000 -dxdebug.remote_host=127.0.0.1”

Sau đó bấm [ OK ] để lưu lại config.

Bước 4: Set breakpoint và thực hiện debug

Vào lại file code “Hello.php” thực hiện set breakpoint tại bất kỳ vị trí nào bạn muốn debug

Chạy debug trên IDE

Kết quả code sẽ chạy đến đoạn breakpoint mà chúng ta đã set ở trên.

Nguồn vinasupport.com

SHARE

mode_edit Bình luận của bạn

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

account_circle
web