Laravel Novaをインストールしてみる

一緒にお仕事させてもらってるLaravelの案件で、Laravel Novaを使う場面がでてきたので、いろいろ調べたことを何回かに分けて記事にしていきたいと思います。今回は導入編ってことで、Laravel Novaをインストールしていきます。

Laravel Novaとは

Laravelの開発者であるTaylor Otwellが発表した公式の管理画面作成用のパッケージとなっています。 フロントエンドではVue.jsやVue Router、Tailwind.cssが使用されたSPAで構築されており、優れたデザイン性を持った管理画面を構築することができます。 Eloquentモデルに触れることなく、既存のLaravelアプリケーションに簡単に導入することが可能で、その他にもいろいろな機能を持っており、簡単な操作でカスタマイズができるようになっています。

Laravel Nova - Beautifully-designed administration panel for Laravel

要件

  • Composer
  • Laravel Framework 5.6+
  • Laravel Mix
  • Node.js & npm

なお、Laravel Novaは有償となっており、使用するにはサイト毎にライセンスの購入が必要となります。 ライセンスの購入はこちらから。

インストール

Laravel Novaをインストールするには2種類の方法があり、一つはNovaソースコードを含むzipファイルを直接ダウンロードしてインストールする方法、もう一つはNovaのプライペートリポジトリを使用してComposer経由でインストールする方法です。

今回は後者のNovaのプライペートリポジトリを使用したインストール方法について紹介したいと思います。

まずはcomposer.jsonにNovaリポジトリを追加します。

"repositories": [
    {
        "type": "composer",
        "url": "https://nova.laravel.com"
    }
],

composer.jsonlaravel/novaのパッケージを追加します。

"require": {
    "php": "^7.1.3",
    "fideloper/proxy": "^4.0",
    "laravel/framework": "5.6.*",
+   "laravel/nova": "~1.0"
},

そしてcomposer updateを実行します。

$ composer update

この時、以下のように資格情報が求められます。

f:id:rnakamine:20181006084533p:plain

これらの資格情報は、Novaソースコードをダウンロードする権限を持っているとしてComposerセッションを認証します。自動で資格情報を入力するようにするには、auth.jsonファイルを作成します。

getcomposer.org

auth.jsonを以下のようにユーザーとパスワードを入力し、composer.jsonと同じプロジェクトの直下に配置します。

{
    "http-basic": {
        "nova.laravel.com": {
            "username": "{ユーザー}",
            "password": "{パスワード}"
        }
    }
}

次にnova:installmigrateを実行し、novaのサービスプロバイダとアセットファイル等をアプリケーション内にインストールします。

$ php artisan nova:install
$ php artisan migrate

nova:publishコマンドを実行し、アセットファイル等をpublicディレクトリにコピーします。

$ php artisan nova:publish

f:id:rnakamine:20181009190025p:plain

ここまででインストール完了なので、実際に管理画面にアクセスしてみます。

管理画面にアクセス

デフォルトは/novaで管理画面にアクセスすることができます。

/novaは変更可能

f:id:rnakamine:20181010003116p:plain

標準では認証にUsersテーブルが利用されるので、登録済みのユーザーでログインします。 すでにUsersリソースはNova上で操作ができる状態になっています。

f:id:rnakamine:20181010003553p:plain

パッケージをインストールしていくつかのコマンドを入力すれば、あっという間にここまで作ることができてとても便利です。

次回はNova上で各リソースの扱い方について書いていきたいと思います。