開発環境のみ導入する便利ツール

#前提
- [こっちで環境構築しておく](https://qiita.com/ksri-soln/items/7b5c4604fc74a660880c)
- 全て`vagrant ssh`から始まる
- プロジェクトはdevprojectとする
- データベースはdevhomesteadとする

```devproject/.env
DB_DATABASE=devhomestead
``` 
- mysqlにてdevhomesteadのデータベースを作成

```
mysql
show databases;
create database devhomestead;
show databases;
quit
```

#Telescope

インストール

```
cd code
cd devproject
composer require laravel/telescope --dev
php artisan telescope:install
php artisan migrate
```

アップデートの確認

```
php artisan telescope:publish
```

`--dev`でインストール時は以下を修正する


```devproject\config\app.php
    // コメントアウト
    // App\Providers\TelescopeServiceProvider::class,
```

```devproject\app\Providers\AppServiceProvider.php
use App\Providers\TelescopeServiceProvider;  // 追加

    /**
     * Register any application services.
     *
     * @return void
     */
    public function register()
    {
        // ここから
        if ($this->app->isLocal()) {
            $this->app->register(TelescopeServiceProvider::class);
        }
        // ここまで追加
    }
```

動作確認

[http://homestead.test/telescope](http://homestead.test/telescope)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/413817/0e6fddbf-4c37-95b9-7118-ad05f6d9ad61.png)

- インストール後だとQueriesにmigrateされたSQLが表示されている以外は何もない

#情報を削除するスケジュールを追加
このままではtelescope関連テーブルに情報を登録し続けるので一定間隔（今回は三日）で削除するスケジュールを登録する
24時間稼働させていない場合は`php artisan telescope:prune --hours=72`で手動で削除することも可能

```devproject\app\Console\Kernel.php
    /**
     * Define the application's command schedule.
     *
     * @param  \Illuminate\Console\Scheduling\Schedule  $schedule
     * @return void
     */
    protected function schedule(Schedule $schedule)
    {
        // $schedule->command('inspire')
        //          ->hourly();
        $schedule->command('telescope:prune --hours=72')->dailyAt('04:00');   #追加
    }
```

#ついでに
毎回URLを入力するのは手間なのでHomeにリンクを用意する(local環境のみ)

Qiitaだとblade.phpのコードが見ずらいので末尾に.htmlを追加しています
例：welcome.blade.php.html
　　↓
　　welcome.blade.php

```devproject\resources\views\welcome.blade.php.html
            <div class="content">
                <div class="title m-b-md">
                    Laravel
                </div>

                <div class="links">
                    <a href="https://laravel.com/docs">Docs</a>
                    <a href="https://laracasts.com">Laracasts</a>
                    <a href="https://laravel-news.com">News</a>
                    <a href="https://blog.laravel.com">Blog</a>
                    <a href="https://nova.laravel.com">Nova</a>
                    <a href="https://forge.laravel.com">Forge</a>
                    <a href="https://github.com/laravel/laravel">GitHub</a>
                </div>
                <!-- ここから -->
                <br>
                <br>
                <div class="links">
                @if (App::environment('local'))
                    <a href="{{ url('/telescope') }}">Telescope</a>
                @endif
                </div>
                <!-- ここまで -->
            </div>
```

#Laravel Debugbar

インストール

```
composer require barryvdh/laravel-debugbar --dev
```

動作確認
http://homestead.test

#覚書
- インストール時に`--dev`オプションを付与するだけで問題ないのか確認する
- Telescopeの画面にはlaravel-debugbarが表示されない（必要ないが）
- Telescopeで使用するテーブル名などを変更することを検討

#参考サイト
[ReaDouble(Laravel 5.8 Laravel Telescope)](https://readouble.com/laravel/5.8/ja/telescope.html)
[Laravel5.7: Laravel Debugbarを使う](https://qiita.com/sutara79/items/9fd442a81001842aeba1)
[Laravel Debugbar](https://github.com/barryvdh/laravel-debugbar)