March 26, 2018

Laravel5.6 新規プロジェクト作成手順

基本に戻ってプロジェクト作成部分を自分がどうやってるか。
世の中には初めてLaravel使ったとか一つのプロジェクトしか見てなくて過剰に盛ってる記事が多すぎる。

事前準備

  • PHP7.2
  • composer
  • git
  • node.js
  • yarn
  • vagrant
  • PhpStorm

この辺はいちいち説明しなくても用意できてる前提。

インストール

https://readouble.com/laravel/5.6/ja/installation.html

laravel/installerを使うのでまだ入れてない場合はcomposerでグローバルにインストール。

composer global require "laravel/installer"

後はlaravelコマンドで作成。

laravel new new-project
cd new-project

ローカルサーバー

https://readouble.com/laravel/5.6/ja/homestead.html

Homesteadをプロジェクトごとにインストール。プロジェクトごとに分けるのが結局一番良かった。

composer require laravel/homestead --dev
//Mac / Linux
php vendor/bin/homestead make
//Windows
vendor\bin\homestead make

Homestead.yamlが作られるので環境に合わせて変更。
ipとドメイン程度だけど。

vagrant up

boxのダウンロードが必要な時は時間かかるけど普段はストレスなく使える。
hostsの設定もして表示できれば成功。

php artisan serveは簡易的な動作確認用なので使わない。

ValetはMacのみなので他の人も関わる場合は選択肢に入れられないけど実際に使ってみても意外と手軽じゃない。

Dockerを開発環境で使う気は全くない。あれは少しのバージョン違いで動かなくなるRailsには必要だけどLaravelではほとんど意味がない。なんとなくでDocker使ってる例をよく見るけどちゃんと考えて本当に必要なのかを判断できてるのは見たことない。
もちろん本番環境で使うかは別の話。

設定

https://readouble.com/laravel/5.6/ja/configuration.html
configや.envの設定はお好みで。最初はtimezoneくらいしか変えることはないけど。

.env

php artisan migrateをVagrantの外から実行できるようにするためDB_HOST=をHomestead.yamlのipと同じにする。
ドキュメントには書いてない。
https://readouble.com/laravel/5.6/ja/migrations.html#running-migrations

認証

https://readouble.com/laravel/5.6/ja/authentication.html
デフォルトのviewはwelcomeしかないけどphp artisan make:authで作られるファイルまでがデフォルトと思っている。
https://github.com/laravel/framework/tree/5.6/src/Illuminate/Auth/Console/stubs/make
app.jsの#app

const app = new Vue({
  el: "#app"
});

layouts/app.blade.phpid="app"のこと

<div id="app">
</div>

php artisan make:authしないとlayouts/app.blade.phpがないのでVue.jsを表示する部分がない。make:authしなかったせいでLaravelでのVueの使い方を間違えてる事例をよく見る。

ユーザー登録機能とかを使わないつもりでもここまではやる。

まとめ

  1. laravel new
  2. Homestead
  3. make:auth

主な工程はこの3つだけ。何回新規に作ったか忘れるくらい作ってるので無駄なことはしない。

これで基本的なアプリはできてるので後はおまけ。

フロントエンドプリセット

https://readouble.com/laravel/5.6/ja/frontend.html
https://github.com/laravel-frontend-presets
Bootstrap以外を使うなら変更。

なお、この作業は新規プロジェクト作成直後にしかやってはいけない。ごそっとファイル入れ替えてるだけだから開発が進んでからやると吹き飛ばされる。

フロント周り

yarn
yarn prod

全部設定済みなので必要に応じて変更するだけ。
バージョン付けは使いたいのでwebpack.mix.jsに.version()追加してviewをmix()に変更はいつもやる。

https://readouble.com/laravel/5.6/ja/frontend.html#writing-vue-components
Vue.js使うならresources/assets/js/componentsにVueコンポーネントを作ってapp.jsで登録すればLaravelのview内でどこでも使える。
Laravel+Vue.jsはここから始めればいい。最初からSPAなんて目指すとたぶん挫折する。

最初からこれだけ用意されてるのになぜか無視してVueコンポーネント使ってない会社を見かけるけどなんでそんな無意味なことをやってるのか全く理解できない。Vueコンポーネント使えば{{}}問題もないしScoped CSSも使えるしで一番良い。ベストプラクティスを無視してはいけない。

composer.json

barryvdh/laravel-debugbarとかbarryvdh/laravel-ide-helperとかいつも使ってるものの追加。
この辺はもはやコピペ。

ide-helperのREADMEにはcomposer.jsonのpost-update-cmdに書いて自動実行させるように書いてあるけどこれは別に無視していい。自動実行させると本番環境へのデプロイ時に困るので必要な時に手動で実行。
自分の場合はpackage.jsonに書いてる。PhpStormではこっちのほうがすぐに実行できる。

"scripts": {
  "ide-helper:meta": "php artisan ide-helper:meta",
  "ide-helper:generate": "php artisan ide-helper:generate",
  "ide-helper:models": "php artisan ide-helper:models -N"
},

.editorconfig

https://github.com/laravel/framework/blob/5.6/.editorconfig
Laravelを参考にするなりして好みで。
これもコピペで同じファイル使い回すだけ。

【追記】その後デフォルトで追加された。

StyleCI

GitHubで公開してる場合のみ。
https://styleci.io/

.styleci.ymlはPSR2にするだけ。

preset: psr2

終わり

全部にURL書いてるように全部ドキュメントに書いてあることでしかない。
検索して変な記事読む前にドキュメントを最初から最後まで全部読むべき。

日々の作業

  • vagrantの起動/終了
  • composer update
  • npm script
    辺りはPhpStormでやってる。
alias cu="composer update"
alias yu="yarn upgrade"

これを登録してPhpStorm起動するまでもない時はcuですっと更新。

© kawax