Chạy Laravel Tinker ngay trên trình duyệt

Artisan tinker là một trong những thứ làm nên sức mạnh của Laravel, giúp bạn thao tác với ứng dụng của mình ngay trên Terminal. Tuy nhiên khi thực hiện một vài đoạn code cùng lúc hoặc copy/paste code có thể gây đôi chút khó chịu. Sẽ thật tuyệt nếu có thể chạy tinker ngay trên trình duyệt nhỉ?

Package mình sẽ giới thiệu trong bài này sẽ giúp bạn thực hiện điều đó: laravel-web-tinker

Package này cũng có dark mode nếu bạn không thích light mode 😄

Cảnh báo

Package này có thể cho phép bạn chạy bất kỳ đoạn code nào trên ứng dụng của bạn, thế nên hãy thận trọng khi cài package này trên môi trường production vì nó có thể ảnh hưởng đến data đấy.

Cài đặt

Thông qua Composer:

composer require spatie/laravel-web-tinker --dev

Tiếp theo, publish các assets cần thiết để chạy ứng dụng:

php artisan web-tinker:install

Nếu không muốn sử dụng các cài đặt mặc định của package, bạn có thể publish file config và chỉnh sửa nó theo ý mình:

php artisan vendor:publish --provider="Spatie\WebTinker\WebTinkerServiceProvider" --tag="config"

File config config/web-tinker.php sẽ được publish:

return [
    
    /*
     * The web tinker page will be available on this path.
     * Đường dẫn để sử dụng tinker trên trình duyệt
     */
    'path' => '/tinker',

    /*
     * Possible values are 'auto', 'light' and 'dark'.
     */
    'theme' => 'auto',


    /*
     * By default this package will only run in local development.
     * Do not change this, unless you know what your are doing.
     * Mặc định package này chỉ hoạt động ở môi trường local, nếu bạn muốn
     * đổi cài đặt này, hãy đọc lại phần cảnh báo bên trên =))
     */
    'enabled' => env('APP_ENV') === 'local',
];

Sử dụng

Truy cập domain/tinker để thực hiện tinker theo ý bạn

Authorization

Nếu thực sự muốn chạy package này trên một môi trường khác local, hay cân nhắc và thực hiện 2 bước dưới đây:

  1. Định nghĩa một Gate tên là viewWebTinker trong AuthServiceProvider:
public function boot()
{
    $this->registerPolicies();

    Gate::define('viewWebTinker', function ($user = null) {
        // return true if access to web tinker is allowed
        // điều kiện để kiểm tra xem user nào có thể truy cập vào web tinker
    });
}
  1. Chỉnh config enabled thành true

Testing

composer test

Một package tương đối hay ho và hữu ích phải không nào mọi người 😄