Laravelプロジェクト作成から初めに行うべき設定まとめ

はじめに

Laravelプロジェクトを作成する方法と、初めに行うべき設定(DB設定や日本語化など)をまとめました。

環境

  • macOS Catalina 10.15.3
  • PHP 7.3.11
  • Composer 1.9.3
  • Laravel 6.17.1

プロジェクト作成

ターミナルで以下のコマンドを実行します。

$ composer create-project laravel/laravel --prefer-dist sample
Installing laravel/laravel (v6.12.0)
  - Installing laravel/laravel (v6.12.0): Loading from cache

...

Application key set successfully.

--prefer-distについて

--prefer-distは、Laravelを圧縮(zip形式)してダウンロードするためのオプションになります。--prefer-distを指定しないと、Laravelを圧縮せずにダウンロードするためダウンロード時間が長くなります。

なお、--prefer-sourceというオプションもあって、これはオプションを指定しない場合、つまりLaravelを圧縮せずにダウンロードするオプションです。

  • --prefer-source:Laravelを圧縮せずにダウンロード(ダウンロード時間が長い)
  • --prefer-dist:Lavavelを圧縮してダウンロード(ダウンロード時間が短い)

Command-line interface / Commands - Composer

DB設定

今回は最も手軽なSQLiteを使用します。

設定ファイル変更

.envを以下のように設定します。

# DB_CONNECTION=mysql
# DB_HOST=127.0.0.1
# DB_PORT=3306
# DB_DATABASE=laravel
# DB_USERNAME=root
# DB_PASSWORD=
DB_CONNECTION=sqlite

DBファイル作成

ターミナルで以下のコマンドを実行します。

$ sqlite3 database/database.sqlite
sqlite> .table
sqlite> .q

解説

config/database.phpの38〜44行目あたりにSQLiteに関する設定があります。

        'sqlite' => [
            'driver' => 'sqlite',
            'url' => env('DATABASE_URL'),
            'database' => env('DB_DATABASE', database_path('database.sqlite')),
            'prefix' => '',
            'foreign_key_constraints' => env('DB_FOREIGN_KEYS', true),
        ],

DBの設定ファイルは以下の行で設定しています。

'database' => env('DB_DATABASE', database_path('database.sqlite')),

envメソッドは.envファイルから第1引数で指定した設定を取得します。第1引数で指定した設定が見つからなかった場合は、第2引数で設定したデフォルト値が適用されます。

今回は.envDB_DATABASEは設定していないので、第2引数で指定したデフォルト値が適用されています。

日本語化

Laravelの日本語化を行います。

プロジェクト全体

config/app.phpを以下のように設定します。

'locale' => 'ja',
'fallback_locale' => 'en',

fallback_localeは、localeの設定値がない場合に適用される設定です。

タイムゾーン

config/app.phpを以下のように設定します。

'timezone' => 'Asia/Tokyo',

メッセージファイル

下記のリポジトリをローカルにコピーし、ファイル群をプロジェクトにコピーします。

sutara79/demo-laravel-crud: My practice for basic CRUD of Laravel5 on Heroku.

$ cd ~/Products
$ git clone https://github.com/sutara79/demo-laravel-crud.git
$ cp -rp demo-laravel-crud/resources/lang/ja/. sample/resources/lang/ja/
$ cp -rp demo-laravel-crud/resources/lang/ja.json sample/resources/lang/

下記のリポジトリでも提供されています。こちらは日本語以外の多言語にも対応しています。

caouecs/Laravel-lang: List of 73 languages for Laravel 5 and Laravel 6

初期ページ削除

残しておいても問題ありませんが、気になる人は削除しておきましょう。

ルート情報

routes/web.phpを以下のように設定します。

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

削除してしまうとページが見つからなくなってしまうので、とりあえず適当な文字列を返すようにしておきます。先にコントローラーやビューを作成してそれらを設定しても大丈夫です。

ビュー

resources/views/welcome.blade.phpを削除します。

バージョン管理

GitとGitHubを使用します。

リポジトリ作成

下記のページを参考にしてリポジトリを作成します。

リポジトリを作成する - GitHub ヘルプ

初期設定

ターミナルで以下のコマンドを実行します。

$ git init
$ git remote add origin https://github.com/xxxxx/yyyyyyy.git

コミット

ローカルで変更が発生したときは、ターミナルで以下のコマンドを実行します。

$ git add .
$ git commit -m "Commit message"
$ git push origin master

.gitignore

.gitignoreは初めから用意されています。初期設定は以下の通りです。

/node_modules
/public/hot
/public/storage
/storage/*.key
/vendor
.env
.env.backup
.phpunit.result.cache
Homestead.json
Homestead.yaml
npm-debug.log
yarn-error.log

まとめ

最低限、これだけは行っておいたほうがいい設定をまとめてみました。Laravelは勉強し始めて間もないですが、これからLaravelに関する記事を投稿していきたいと思っています😄

関連記事

開発環境(ローカルストレージ)と本番環境(Amazon S3)にトリミング+リサイズした画像を保存する方法
# はじめに 以前、以下の記事を書きました。 - [開発環境と本番環境で画像のアップロード先を分岐する方法 \- AUTOVICE](https://www.autovice.jp/articles/68) - [ローカルやAmazon [...]
2020年3月7日 11:56
Laravel Mixの仕組みをわかりやすく解説:CSSをSASS/SCSSで記述する方法
# はじめに Laravel Mixの仕組みをわかりやすく解説します。Laravel Mixを使ってアセットコンパイルを行うことで、SASS/SCSSでCSSを記述できるようになります。 # Laravel Mixの仕組み まずはじめに、 [...]
2020年3月6日 9:25
【Laravel 6.x】Laravelプロジェクトの名称を変更する方法
# はじめに あまりないケースではありますが、一度作成したLaravelプロジェクトの名称を変更する方法を解説します。ここで言うLaravelプロジェクトの名称とは、以下のコマンドの`Sample`のことを指します。 ```terminal [...]
2020年3月4日 16:24
【Laravel】ローカルディスクやAmazon S3にアップロードした画像をビューで表示する方法
# はじめに 本記事では、ローカルディスクやAmazon S3にアップロードした画像をビューで表示する方法について説明しています。 なお、本記事では画像のアップロードする方法については説明していません。本記事は既に実装済みの画像アップロード [...]
2020年3月4日 15:44
【Laravel】Amazon S3へのアップロードが「403 Access Denied」で失敗する原因と対処方法
# はじめに LaravelでAmazon S3へ画像アップロードする処理を実装し、いざアップロードしようとしたところ、以下のエラーが出て失敗しました。 ``` Error executing "PutObject" on "https: [...]
2020年3月4日 13:33
開発環境と本番環境で画像のアップロード先を分岐する方法
# はじめに この記事では、以下の方針で画像のアップロード先を分岐する方法について解説しています。 - 開発環境:ローカル(storage/app/public/) - 本番環境:Amazon S3 # 事前準備 AWSに未登録の [...]
2020年3月4日 12:52
独自ポリシーの導入手順と注意点(ハマリポイント)を解説
# はじめに ユーザーと記事を関連付けておいて、編集や削除は記事の作成者のみ許可したいときにはポリシーを作成します。今回はポリシーの導入手順と注意点(ハマリポイント)を解説します。 # 導入手順 ## ポリシー作成 ターミナルで以下 [...]
2020年3月1日 10:32
ユーザー認証機能の導入手順と生成されたフォームを日本語化する方法を解説
# はじめに Laravelではユーザー認証機能の導入が簡単にできてしまいます。この記事ではLaravelプロジェクトにユーザー認証機能を追加する手順と、生成されたフォーム(デフォルトでは英語)を日本語化する方法を解説します。 # 前提 [...]
2020年2月29日 13:54