Laravel – Debug trên file view hiệu quả hơn với directive này

120

I. Giới thiệu

Làm việc với Laravel nhiều chắc chắn developer nào cũng biết tới hàm dd() được sử dụng để debug dữ liệu. Hàm này rất tiện lợi khi chúng ta debug trên các file Controller, Model, Command,… Tuy nhiên khi sử dụng trong các file *.blade.php thì hơi bất tiện, thông thường để debug trên file *.blade.php mình thường hay viết như thế này:

{{  dd($variable) }}
Hoặc
@php dd($variable) @endphp

Cũng được đấy nhưng xem chừng hơi dài nhỉ. Trong bài viết này, mình sẽ chỉ bạn cách debug trên file view hiệu quả hơn bằng cách custom một blade directive nhé.

II. Bắt tay vào thực hiện

Ý tưởng của mình là thay vì viết dài như trên chúng ta có thể viết thành

@dd($variable)

Để có được một directive như trên, rất đơn giản bạn chỉ cần mở App\Providers\AppServiceProvider, tìm đến method boot và sửa thành

use Blade;

//...

public function boot()
{
    //...
    Blade::directive('dd', function($expression) {
        return "<?php dd($expression); ?>";
    });
}

Công việc chỉ đơn giản như vậy thôi. Giờ ở ngoài file *.blade.php, bạn muốn dd() biến nào chỉ cần sử dụng @dd($variable) là xong.

III. Kết luận

Một trick nhỏ nhưng hiệu quả cao, hy vọng sẽ giúp bạn tiết kiệm thời gian trong lúc diệt bugs.