Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the wordpress-seo domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /var/www/vinascript/html/wp-includes/functions.php on line 6114
Debug Laravel Artisan Command với PHPStorm - VinaScript

Latest Post

Triển khai dự án PHP, Mysql với Nginx trên Docker Tìm hiểu về HTML – Ưu điểm, nhược điểm và cách hoạt động của HTML

Xin chào mọi người,

Sau bài hướng dẫn “Debug Laravel với PHPStormXdebug,” chúng tôi đã thảo luận về việc gỡ lỗi trong các ứng dụng web được xây dựng bằng Laravel. Tuy nhiên, không phải tất cả ứng dụng Laravel đều là các trang web; có những ứng dụng chạy ẩn sau giao diện, chẳng hạn như các tác vụ hàng đợi (batch). Laravel cung cấp một công cụ quản lý dòng lệnh mạnh mẽ được gọi là Artisan Command, và đây là một phần quan trọng giúp Laravel trở thành một PHP Framework xuất sắc.

Hôm nay, chúng tôi sẽ xây dựng một ứng dụng nhỏ sử dụng Artisan Command và hướng dẫn cách gỡ lỗi ứng dụng đó trong PHPStorm.

Trước khi bắt đầu, các bạn cần chuẩn bị những điều sau:

1. Kiến thức cơ bản về Laravel phiên bản 7.x.
2. Môi trường làm việc PHPStorm IDE.
3. Đã cài đặt Xdebug.

Hãy tiếp tục với hướng dẫn của chúng tôi để làm quen với việc debug ứng dụng Laravel chạy dưới dạng Artisan Command trong PHPStorm.

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 AppConsoleCommands;

use IlluminateConsoleCommand;

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 AppConsoleCommands;

use IlluminateConsoleCommand;

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.

Để lại một bình luậ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 *