Laravel初期設定について【個人用メモ】

# 1.言語や時刻の設定

言語や時刻の設定は config/app.php で設定いたします。

```php:config/app.php
'timezone' => 'Asia/Tokyo',
'locale' => 'ja',
'fallback_locale' => 'ja',
'faker_locale' => 'ja_JP',
```

# 2.DBの設定
①デフォルトでは以下の設定になっています。

```php:.env
DB_CONNECTION=mysql // どのRDBMSを利用するか？
DB_HOST=127.0.0.1 // HOST名
DB_PORT=3306 //PORT番号
DB_DATABASE=homestead // DB名
DB_USERNAME=homestead // DBのユーザー名
DB_PASSWORD=secret // DBのパスワード
```

設定を変えにDBを作成するなら

```
DB名：作成したDB名
アクセスユーザー名：homesteadなど
アクセスユーザー名のパスワード：secretなど
```

この設定でDBとユーザーアカウントを作成します。

参考URL
https://yaba-blog.com/laravel-db/#toc1


②冒頭にある'default'の第二引数を使用したいデータベース名に設定すればOK。sqliteならsqlite、MySQLならmysql。

```php:config/database.php
'default' => env('DB_CONNECTION', データベース名),
```

DB文字コード変更を下記の通り変更する。

```php:config/database.php
// 変更前
'charset' => 'utf8mb4',
'collation' => 'utf8mb4_unicode_ci',

// 変更後
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
```

# 3.エラーメッセージの日本語化
メッセージの日本語ファイルはデフォルトでは提供されていないので、
手順としては以下の通りです。


①laravel/resources/lang/en ディレクトリを丸ごとコピーする
②コピーしたディレクトリ名を ja へ変更する。
③jaディレクトリ内のvalidation.phpに記述されている英文を日本語に置き換える
※エラーメッセージを格納するファイルは validation.php になります。


最終的には以下のようなディレクトリ構成になります。

```
laravel
├── resources
│　　　├── lang
│　　　│   ├── en
│　　　│   │   ├── auth.php
│　　　│   │   ├── pagination.php
│　　　│   │   ├── passwords.php
│　　　│   │   └── validation.php
│　　　│   └── ja
│　　　│       ├── auth.php
│　　　│       ├── pagination.php
│　　　│       ├── passwords.php
│　　　│       └── validation.php
```


日本語化参考URL
https://readouble.com/laravel/5.8/ja/validation-php.html?header=%25E8%25AA%25AC%25E6%2598%258E

①アプリケーションのロケール設定

```
'locale' => 'ja',
```

アプリケーションロケールによって、翻訳サービスプロバイダによって使用されるデフォルトのロケールが決定されます。 この値は、アプリケーションがサポートするロケールのいずれかに自由に設定できます。


②アプリケーションフォールバックロケール

```
'fallback_locale' => 'en',
```

フォールバックロケールは、現在のロケールが使用できない場合に使用するロケールを決定します。 アプリケーションによって提供される任意の言語フォルダに対応するように値を変更することができます。

###### エラーメッセージ内の「:attribute」と記載されている部分は、検証フォームのname設定に置き換えられます。

name設定部分も日本語に置き換えたい場合、上記日本語リソースファイル(validation.php)の106行目にあるattributes部分に追加をおこないます。

例えば、name設定が「title」と設定されており、その部分を「タイトル」と日本語化したい場合は、以下のように記述をおこないます。

```
    'date' => ':attributeを有効な日付形式にしてください。',
    'min' => [
        'string'  => ':attributeを:min文字以上にしてください。',
    ],
    'required' => ':attributeを入力してください。',
 
    // ...
 
    /*
    |--------------------------------------------------------------------------
    | Custom Validation Attributes
    |--------------------------------------------------------------------------
    */
 
    'attributes' => [
        'title' => 'タイトル',
        'body' => '本文',
        'published_at' => '公開日',
    ],
];

```

#4.head内の設定【BootStrapなど】

######BootStrap(CDNでの方法)


①レスポンシブ用メタタグの記述。
②CSS を < head >タグ 内側に他のスタイルシートよりも先に入れてください。
③いくつかのコンポーネントで jQuery, Popper.js などの JavaScript プラグインが必要です。< script > を </ body> の直前に順番通りに入れてください。


```php:resources/views/layout.blade.php
<!doctype html>
<html lang="ja">
  <head>
  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
....
    <!-- Bootstrap CSS -->
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/css/bootstrap.min.css" integrity="sha384-9aIt2nRpC12Uk9gS9baDl411NQApFmC26EwAOH8WgZl5MYYxFfc+NcPb1dKGj7Sk" crossorigin="anonymous">
....
  </head>
  <body>
....

    <!-- Optional JavaScript -->
    <!-- jQuery first, then Popper.js, then Bootstrap JS -->
    <script src="https://code.jquery.com/jquery-3.5.1.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script>
    <script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js" integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo" crossorigin="anonymous"></script>
    <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/js/bootstrap.min.js" integrity="sha384-OgVRvuATP1z7JjHLkuOU7Xw704+h835Lr+6QL9UvYjZE3Ipu6Tp75j7Bh/kR0JKI" crossorigin="anonymous"></script>
  </body>
</html>
```

公式リファレンス
https://getbootstrap.jp/docs/4.5/getting-started/introduction/#%E3%81%AF%E3%81%98%E3%82%81%E3%82%8B



ページネーションをBootstrap 4 スタイルにしたい。
bootstrap/app.php の末尾の return の手前あたりに以下を追記する。

```php:bootstrap/app.php
Illuminate\Pagination\AbstractPaginator::defaultView("pagination::bootstrap-4");
```
###### jQuery サイトの CDN

```
<script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>
```

###### Font AwesomeのCDN

```
<link href="https://use.fontawesome.com/releases/v5.6.1/css/all.css" rel="stylesheet">
```

###### Google font

```
<link rel = "preconnect" href = "https://fonts.gstatic.com">
<link href = "https://fonts.googleapis.com/css2？family = Noto + Sans + JP＆ display = swap" rel = "stylesheet">
```

Googleフォント
https://fonts.google.com/?subset=japanese

# 5.キャッシュファイルの作成

①binフォルダの作成
②clear-laravel.shファイルの作成
③clear-laravel.shファイル内の記述


laravel
├── bin
│　　　├── clear-laravel.sh

```
# !/bin/bash
php artisan view:clear
php artisan cache:clear
php artisan config:clear
php artisan route:clear
php artisan clear-compiled
php artisan config:cache
composer dump-autoload
php artisan ide-helper:generate
php artisan ide-helper:models -N
php artisan ide-helper:meta
find . -name '._.DS_Store' -type f -ls -delete
```

設定が完了したら、下記を叩く。

```
$ bin/clear-laravel.sh
```

# 補足

[laravelなどコマンド一覧【個人用メモ】]
(https://qiita.com/01hana/items/7dea42d809dc5f93056f)