Laravel Debugbar ¶
安裝 ¶
composer require barryvdh/laravel-debugbar --dev
根據Laravel debugbar官網的說明檔,並沒有加上 –dev,這會使得 Laravel debugbar 被裝在 composer.json 的 require 區段,而非 require-dev 區段,這會造成在正式上線主機也會安裝 Laravel debugbar,這是不需要的。
For Laravel < 5.5
composer require barryvdh/laravel-debugbar:~2.4 --dev
新增Service Provider ¶
Composer 只是將 Laravel debugbar 安裝到目前專案目錄的 /vendor/barryvdh/laravel-debugbar 目錄下,此時 Laravel 還不知道有這個 package,必須透過 service provider 的註冊載入,Laravel debugbar 才會啟動。
# /app/Providers/AppServiceProvider.php
namespace App\Providers;
use Illuminate\Support\ServiceProvider;
class AppServiceProvider extends ServiceProvider
{
/**
* Bootstrap any application services.
*
* @return void
*/
public function boot()
{
//
}
/**
* Register any application services.
*
* @return void
*/
public function register()
{
if ($this->app->environment() == 'local')
{
$this->app->register('Barryvdh\\Debugbar\\ServiceProvider');
}
}
}
在Laravel debugbar官網的說明檔,是教人直接在 config/app.php 的 providers 加入 Barryvdh\Debugbar\ServiceProvider::class ,這樣雖然可行,但會導致正式上線主機也會載入 Laravel debugbar,雖然 APP_DEBUG=false 會使 Laravel debugbar 不會在正式上線主機執行,但還是會影響 Laravel 啟動時間,也較浪費記憶體。
設定Facade ¶
# /config/app.php
'aliases' => [
(略)
'Validator' =\> Illuminate\\Support\\Facades\\Validator::class,
'View' =\> Illuminate\\Support\\Facades\\View::class,
// Laravel Debugbar
'Debugbar' =\> Barryvdh\\Debugbar\\Facade::class,
],
複製設定檔 ¶
php artisan vendor:publish
確認 .env ¶
# /.env
APP_ENV=local
APP_DEBUG=true
Laravel Debugbar只有在APP_ENV=local與APP_DEBUG=true下才會啟動,確認.env設定正確。
使用 ¶
自行加入Debug資訊 ¶
Debugbar::info($object);
Debugbar::error('Error!');
Debugbar::warning('Watch out...');
會顯示在 Message 裡