🐈‍⬛

Laravel環境構築メモ

2023/09/12に公開

※大枠は公式リファレンスを参考にします。
※2023年9月10日時点の内容になります。

Laravelのインストール

1.ターミナルでLaravelをインストールするディレクトリまで移動します。
2.インストールでインストールをします。
私の場合は、Dockerを利用したいので、「LaravelとDocker」>「macOSで始める」に沿っていきます。

ターミナル
curl -s "https://laravel.build/example-app" | bash

3.Laravel Sailを起動します。
リファレンスと一部異なります。
バックグラウンドでDockerを動かしておきたいので-dオプションをつけておきます。

ターミナル
cd example-app

./vendor/bin/sail up -d

コマンドの省略(一度設定してしまえば不要なはず)

./vendor/bin/sailsailだけで実行できるようにエイリアスを設定します。

ターミナル(Macの場合)
vim ~/.zshrc

'i'を押してインサートモードにする。

インサートモード
alias sail='[ -f sail ] && bash sail || bash vendor/bin/sail'

完了したらescを押してインサートモードを終了。
:wqを押して保存して終了。

設定ファイルを再読み込みして変更を反映します。

ターミナル(Macの場合)
source ~/.zshrc

Laravelの初期設定

1.言語環境を変更しておく。

config>app.php
+ 'timezone' => 'Asia/Tokyo',
- 'timezone' => 'UTC',
config>app.php
+ 'locale' => 'ja',
- 'locale' => 'en',
config>app.php
+ 'faker_locale' => 'ja_JP',
- 'faker_locale' => 'en_US',

2.DBが接続されているかを確認しておく。

.env
DB_PORT=3306

Laravel Sail の環境で稼働している Docker コンテナの一覧を表示するために

ターミナル
sail ps

を実行。
PORTSDB_PORT=3306に合うものがあるかを確認。

ターミナル
sail mysql

を実行し、mysqlコンテナに入り

ターミナル
show databases;

を実行して、アプリケーション名のデータベースがあることを確認。
mysqlコンテナはexitで終わらせられます。

3.Logを変更しておく。
個人的に日毎が見やすいという理由での変更です。

.env
+ LOG_CHANNEL=daily
- LOG_CHANNEL=stack

認証機能について(Laravel Breeze)

認証機能についても公式リファレンスに記載があります。
今回はLaravel Breezeの設定をしていきます。

1.Composerを使用してLaravel Breezeをインストール

ターミナル
sail composer require laravel/breeze --dev
ターミナル
sail artisan breeze:install
ターミナル
sail artisan migrate
sail npm install
sail npm run dev

途中

  • どのフロントエンドスタックをインストールしたいか
  • ダークモードのサポートを追加したいか
  • どのテスティングフレームワークを使用したいか
    を聞かれますが、お好みのものを選んでEnterを押しましょう。

ブラウザでhttp://localhost/にいくとLaravel公式ページの右上にLoginRegisterがあればOK。

パスワード確認について

パスワードの確認>ルートの保護に記載あり。

routes>web.php
Route::get('/', function () {
    return view('welcome');
})
+ ->middleware(['password.confirm'])
;

Route::get('/', function () {
    return view('welcome');
})
- 
;

認証時のメール確認について

app>Models>User.php
+ class User extends Authenticatable implements MustVerifyEmail

- class User extends Authenticatable

このあたりの機能をテストする場合には

.env
MAIL_FROM_ADDRESS="hello@example.com"

この箇所のメールアドレスをユーザー登録すれば、ローカルで確認ができます。
上のURLでMailpitに飛ばない場合はsail psでMailpitのポート番号を確認してください。

Laravel Breezeの日本語化

[こちらの記事](https://zenn.dev/circleback/articles/ez-breezy-jp)を参考に進めます。

ターミナル
sail composer require askdkc/breezejp --dev
sail artisan breezejp

他の箇所はここまでの手順で完了していると思うので、上の2行のみで実装できます。

CodeSnifferの導入

ターミナル
sail composer require --dev squizlabs/php_codesniffer

phpcs.xmlを自作して、ルート直下に置いておく。

huskyを使って、git commit時にCodeSnifferを実行するように設定します。

huskyはGitフックを使って動作するため、Gitリポジトリである必要がある。
まだGitリポジトリでない場合は初期化する。

ターミナル
sail git init

Gitリポジトリにしたら

ターミナル
sail npx husky-init
sail npm install

ルート直下に.huskyというディレクトリが入る。

.husky>pre-commit
+ ./vendor/bin/sail composer phpcbf
+ ./vendor/bin/sail test

- npm test
composer.json
"post-create-project-cmd": [
            "@php artisan key:generate --ansi"
+         ],
+        "phpcs": [
+             "./vendor/bin/phpcs --standard=phpcs.xml ./"
+         ],
+         "phpcbf": [
+             "./vendor/bin/phpcbf --standard=phpcs.xml ./"
+         ]

"post-create-project-cmd": [
           "@php artisan key:generate --ansi"
-         ]

一旦ここまで出来れば、あとはそれぞれの開発に進めるのでは…と思っていますが、今後も加筆修正は都度行います。

Discussion