Laravelインストール後に最低限押さえておきたい初期設定 | アントレプログラマー

Laravelインストール後に最低限押さえておきたい初期設定

Laravel

こんにちは、ニキです。

この記事はこんな方におすすめです。

  • Laravelをインストールした後の初期設定を知りたい
  • Docker上でLaravelを動かしているときの特別な設定も知りたい
  • 設定内容の理由も理解したい

今回の記事では、Laravelの初期設定についてです。タイムゾーンや表示言語、データベースへの接続設定について解説します。

すでにDocker上でLaravelプロジェクトを始めている前提で進めますが、ローカルマシンにLaravelを直接インストールしている場合でも役立つ内容にしています。また、これからプロジェクトを始める方には以下の記事がおすすめです。

Takaharu Niki

・Webエンジニア6年目。
・バックエンドを中心に、フロントエンドやDevOps業務も経験。
・現在は、自社サービス企業のテックリードとして従事。

Takaharu Nikiをフォローする

環境情報

  • Chip: Apple M1
  • macOS: Ventura 13.2.1
  • Docker: 20.10.22

コンテナ上の環境情報

  • Laravel: 10.16.1
  • PHP: 8.2.8
  • Nginx: 1.25.1
  • MySQL: 8.0.34

作成・変更する初期設定

お急ぎの方のために、先にまとめです。

  • config/app.php
'timezone' => 'Asia/Tokyo',

'locale' => 'ja',
  • .envと.env.example
DB_HOST=db

DB_PASSWORD=root
  • lang/ja/auth.php
  • lang/ja/pagination.php
  • lang/ja/passwords.php
  • lang/ja/validation.php

Laravelのtimezoneを変更する初期設定

timezoneをAsia/Tokyoに変更

config/app.phpのtimezoneを以下のように修正します。

'timezone' => 'Asia/Tokyo',

動作確認を含めた解説は以下の記事で扱っています。

Laravelの表示言語を変更する初期設定

デフォルトでは英語のメッセージが表示されるので、他言語を扱いたい場合にconfig/app.phpのlocaleの値を変更します。

英語のメッセージをカスタマイズするか、他言語のメッセージを使いたい場合にlangディレクトリ以下のlocaleに対応するファイルを編集します。

Laravel 10からlangディレクトリがデフォルトで含まなくなりました。代わりに、lang:publish を使ってlangディレクトリを作れるようになりました。

Though not relevant to existing applications, the Laravel application skeleton no longer contains the lang directory by default. Instead, when writing new Laravel applications, it may be published using the lang:publish Artisan command: php artisan lang:publish

引用 https://laravel.com/docs/10.x/upgrade#language-directory

Laravel 9まではlang/enをコピーしてlang/jaを作るのが通例でしたが、php artisan lang:publish

でlang/enを作成した後にlang/jaにリネームするのがいいと思います。

デフォルトのlocaleで表示されるメッセージを確認

langディレクトリが存在しなくてもメッセージを表示できます。

> echo __('auth.password')
The provided password is incorrect.

localeをjaに変更して表示されるメッセージを確認

config/app.phpのlocaleを以下のように変更し、日本語対応します。

'locale' => 'ja',

変更の反映を確認するために、REPL環境に入り直します。

> exit

# php artisan tinker

localeはjaが設定されていますが、lang/ja/auth.phpにpasswordの定義が無いか、ファイルが存在しないと、fallback_localeのenが適用されます。

> echo __('auth.password')
The provided password is incorrect.

fallback_localeにen以外を設定すると以下のようになるので、enのままにしておくことを推奨します。

> echo __('auth.password')
auth.password

langディレクトリを作成表示されるメッセージを確認

langディレクトリを作成します。プロジェクトルートに作成されます。

# php artisan lang:publish

lang/enで作成されているので、lang/jaに変更します。

lang/ja/auth.phpのpasswordの値を以下のように変更します。

'password' => 'パスワードが正しくありません。',

変更の反映を確認するために、REPL環境に入り直します。

> exit

# php artisan tinker

auth.passwordを再度確認すると、以下のように日本語でメッセージが表示されます。

> echo __('auth.password')
パスワードが正しくありません。

すべてのメッセージを日本語訳するのは大変なので、日本語翻訳ツールを活用すると作業を減らせます。

Laravelでデータベースへ接続するための初期設定

.envのDB_HOSTとDB_PASSWORDを以下のように変更します。機密情報でなければ、.env.exampleも同様に変更しておくと他の人に共有できて便利です。

DB_HOST=db

DB_PASSWORD=root
  • DB_HOST

Dockerを利用するなら127.0.0.1ではなく、mysqlコンテナのサービス名かコンテナ名を指定する必要があります。コンテナ間の通信をするためにはホストマシンを経由します。compose.yaml内の名前を指定することで解決できます。

ちなみに、127.0.0.1はループバックアドレスであり、appコンテナ自身のlocalhostを指しますので、コンテナの外に抜けられません。

  • DB_PASSWORD

compose.yamlのMYSQL_ROOT_PASSWORDの値です。

以下のコマンドでマイグレーションを実行します。

# php artisan migrate

エラーがなければ、作成されたテーブルを確認しましょう。

まとめ

今回の記事は、Laravelの初期設定についてでした。タイムゾーンや表示言語、データベースへの接続設定について解説しました。

続いて、Laravel BreezeとNext.jsを使ったフロントエンドとの認証方法については、以下の記事で解説しています。

Docker/Kubernetes 実践コンテナ開発入門

コンテナ技術をこれから学びたい方、あるいはすでに基本的な知識を持っているが実践的なスキルを伸ばしたい方に最適な書籍です。この書籍では、Dockerの基本操作から始まり、Kubernetesでのクラスタ管理、サービスの自動化、スケーリング、ネットワークの設定といった高度な内容に至るまで、手厚くガイドしてくれます。

PHPフレームワークLaravel Webアプリケーション開発 バージョン8.x対応

既にLaravelの基本を知っていてスキルアップを図りたい開発者にとって、かなりおすすめです。クリーンなコーディング、保守性、テストの容易さなど、Laravelの提供する現代的なWeb開発のベストプラクティスを体系的に学べる内容が含まれています。

Takaharu Niki

・Webエンジニア6年目。
・バックエンドを中心に、フロントエンドやDevOps業務も経験。
・現在は、自社サービス企業のテックリードとして従事。

Takaharu Nikiをフォローする
Laravel
Takaharu Nikiをフォローする
アントレプログラマー
タイトルとURLをコピーしました