Latest Post

Tăng thứ hạng và truy cập tự nhiên với 10 phương pháp SEO hay nhất Kiếm Tiền Online (mmo): Khái Niệm và Các Hình Thức Phổ Biến

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.

Trả lời

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 *