Laravel5/6にAdminer入れる記事はいくつかあったのですが、7.xに入れる記事が見つからなかったので、一応。
#Adminerって?
laravelもphpも初心者なのでここからです。
Adminerはブラウザで操作できるデータベース管理ツール。
PHPファイル1つで書かれているため手間が少なく、またサイズも軽い。
対応するDBは以下の通り
- MySQL
- Oracle
- SQLite
- PostgreSQL
- MS SQL
- etc
#Laravel7.xにAdminerを入れる
##ライブラリ
元のツールがPHPファイル1つとはいえ、Laravelに入れるにはいろいろ必要となってきます。
ライブラリは現状2つ(?)あるっぽいです。
・miroc/Laravel-Adminer
https://github.com/miroc/Laravel-Adminer
・onecentlin/laravel-adminer
https://github.com/onecentlin/laravel-adminer
しかしながら、前者のライブラリはLaravelに合わせたバージョンアップがされておらず、
composer.jsonを見てもLaravel5.xしかサポートしていないようです。
よって、Laravel7.xでは後者のonecentlin/laravel-adminerを使用していきます。
##手順
導入手順に関してはreadmeにある通りですので、5/6と変わりありません。
一応日本語で手順を書いておきます。
###1. インストール
以下のコマンドでライブラリをインストールします。
composer require onecentlin/laravel-adminer
または、
composer.jsonのrequire部分に
"require": {
"onecentlin/laravel-adminer": "^4.7"
},
を追記して、composer update
します。
###2. 事前準備
config/app.php
のproviders部分に以下を追記します。
'providers' => [
...
Onecentlin\Adminer\ServiceProvider::class,
];
###3. アクセス許可の設定
app/Http/Kernel.php
の$middlewareGroups
部分に以下を追記します。
protected $middlewareGroups = [
...
'adminer' => [
\App\Http\Middleware\EncryptCookies::class,
\Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
\Illuminate\Session\Middleware\StartSession::class,
// you may create customized middleware to fit your needs
// example uses Laravel default authentication (default protection)
\Illuminate\Auth\Middleware\Authenticate::class,
],
];
また、このあとLaravel5.1用の設定が必要となりますが、今回のスコープではないので割愛します。
###4. Adminerのテーマを設定(任意)
デフォルトの表示でもよければ飛ばしても構いません。が、やっておくと非常に見やすいです。
以下コマンドを実行すると、adminer.cssファイルがpublicフォルダにコピーされます。
php artisan vendor:publish --provider="Onecentlin\Adminer\ServiceProvider"
Adminerの公式に様々なテーマがあるので好きなものをコピーして、adminer.cssに上書きしましょう。
ちなみに冒頭の画像は公式の「nette」というテーマを適用した場合のサンプルです。
###5.アクセス
あとはブラウザからアクセスできればOKです。
http://[your.domain.com]/adminer
#備考
ちなみにライブラリとかじゃなく生のツールの方のAdminerは
Laravelで使用している関数名とコンフリクトしているので、無理やり入れると後が面倒です。