概要
Laravel SparkというサービスをLaravelユーザーの方はご存知でしょうか?
名前は聞いた事ありましたが具体的にどんなものか知らなかったのでLaravelユーザーとしては使ってみようという事でインストールしてみました。
公式ドキュメント通りに環境構築しても、色々とハマったりしたので今後試す人の参考になればと。
Laravel Sparkとは?
Laravel SparkとはLaravel + Vue.jsで作成されたWebアプリケーションテンプレート。
有料ライセンスでありソフトウェアをインストールすると次のような機能がすでに実装されている。
- 認証
- 顧客の請求書ダウンロード
- サブスクリプション
- チームでのユーザー作成、招待
- 二段階認証
- ユーザー向けAPIトークンの作成
- ユーザー偽装してのデバッグ機能 etc...
上記のような機能はすでに提供されるのでよりサービスに近い部分に開発を注力できる
というのが特徴です。
このような機能や画面をLaravel + Vue.js
で作成できるというのもメリットですね。
Laravel Sparkをインストールする前に...
公式ドキュメントによるとLaravel Sparkは次のコンポーネントで構成されていると記載があります。
- Composer
- Laravel Framework 5.6+
- Laravel Mix
- Bootstrap 4 (SASS)
- Node.js & NPM
Vue.jsはもちろん使えますが、他のJSフレームワークを使用するのも自由なようです。
ライセンス
Laravel Sparkは有料ライセンスになっています。
公式サイトによると次のような料金体系になっています。
- 1つのWebサイトで使用する場合: $99
- 無制限に使用する場合: $299
環境構築
以下の環境でインストールしました。
- MacOSX Sierra
- Composer1.6.3
- PHP7.2.3
- MYSQL5.7.19
- npm5.6.0
インストール
まずはLaravel Sparkに登録が必要です。公式サイトのRegisterからアカウント登録しましょう。
lisenceを購入してないとインストールできないようです。試す方はクレジットカード登録し$99のライセンスを購入します。
ライセンス購入後、公式のLaravel SparkサイトにログインしGithubのリポジトリへJoinしましょう。Laravel Sparkの公式サイトにログインしていればSettings -> Github
からJoinできます。Joinをしておかないとパッケージをインストールする際に403
で弾かれます。
Laravel Sparkをインストールするにはいくつか方法があります。
spark installer
とlaravel installer
がありますが、どうも上手くできなかったのでcomposer
コマンドからインストールしました。
まずはlaravelプロジェクトを作成します。
※composer
とnpm
が事前に必要なため、事前にインストールしておいて下さい
$ composer create-project --prefer-dist laravel/laravel spark-sandbox
composer経由でインストールする場合はLaravel SparkのSatisリポジトリを登録する必要があるようです。composer.json
に追記します。
"repositories": [
{
"type": "composer",
"url": "https://spark-satis.laravel.com"
}
],
続いてcomposer.json
のrequire
に"laravel/spark-aurelius": "~6.0",
を追加します。
$ composer require laravel/spark-aurelius:~6.0
決済サービスをStripeかBraintreeを使う場合で使用するパッケージは変わるようです。とりあえずインストールしたい場合は不要な気がしますが、僕はlaravel/cachier
を選択してrequire
に追加しました。
$ composer require laravel/cashier:~7.0
composer.json
に必要パッケージを追加したらcomposer update
します。
$ composer update
これで依存ライブラリがインストールされます。vendorディレクトリにもろもろインストールされたらapp.php
にServiceProviderを登録します。
Laravel\Spark\Providers\SparkServiceProvider::class,
Laravel\Cashier\CashierServiceProvider::class,
登録したら次のコマンドを実行します。
$ php artisan spark:install --force
再度、app.php
にServiceProviderを登録します。
App\Providers\SparkServiceProvider::class,
最後にnpm install
、npm run dev
を実行します。
npm run dev
の時にcross-env not found error
が僕の環境では発生しました。package.json
を見てみるとscripts
のdev
セクションでcross-env
コマンドを使用していたので、npm i -g cross-env
でglobalインストールして解決しました。
{
"private": true,
"scripts": {
"dev": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js",
// 以下、省略
最後にphp artisan migrate
を実行するため、.env
に任意のデータベースの設定をします。
DB_DATABASE=spark_sandbox
データベースにアクセスできる状態になったらmigrate
して必要なテーブルを作成します。
$ php artisan migrate
公式ドキュメントによるとstorage
ディレクトリへのSymlinkが必要との事なので以下のコマンドを実行します。
$ php artisan storage:link
ここまで出来たらビルドインサーバを起動してアクセスしてみます。
$ php artisan serve
結果
所感
公式ドキュメント通りに試しましたがインストールするのに結構ハマりました...。
Laracastでも同じ箇所でハマっている人がいたので、あるあるなのかも知れません。
インストール後、2段階認証を試してみたのですが一行追加するだけで組み込めました。そちらは別のポストで記載できればと。