Laravelプロジェクトの各種初期設定
移行ガイド
目次
1. インストール & プロジェクトの生成
2. アプリ名/データベース/セッションの設定
3. タイムゾーン/言語
4. エラーメッセージの日本語化 (validation.php)
5. ログイン系機能を削除する ※不要な場合
6. Bootstrap/jQueryを使用する
7. 各種コマンド (php artisan)
8. デバッグ、ダンプ、SQLの出力
9. localhost:8000が表示されない場合の対処方法
10. キャッシュ/ログ/セッションファイルの削除
11. 本番環境用の設定
12. 運用・保守
--- 以下はLaravel開発に役立つミニ情報。
13. 基本的な機能
14. ルーティングの例 (Route::resource())
15. オリジナルのログイン機能
16. オープンソースで公開する
17. フロントエンド(React、Vue.js)
1. インストール & プロジェクトの生成
Laravelをインストールする [WSL/Ubuntu環境]
2. アプリ名/データベース/セッションの設定
.env
# アプリ名 APP_NAME="ココにアプリ名" # データベース DB_CONNECTION=mysql DB_DATABASE=ココにデータベースの設定 DB_USERNAME=ココにデータベースの設定 DB_PASSWORD=ココにデータベースの設定 # セッション # デフォルト(120分)なので24時間=1440が良い # @csrfのtokenはココのセッションの生存時間を用いている SESSION_LIFETIME=1440
ビュー(blade)ファイルでAPP_NAMEを読み込む場合は次のようにする。
{{ config('app.name') }}
APP_KEY(アプリケーションキー)が未設定や再生成する場合は次のコマンドを実行します。
php artisan key:generate
セッションに関してはセッション(@csrf含む)のデフォルト120分をブラウザが閉じまるで有効にするも参考にして下さい。
3. タイムゾーン/言語
config\app.php
timezone、localeを次のように変更する
'timezone' => 'Asia/Tokyo', 'locale' => 'ja',
4. エラーメッセージの日本語化 (validation.php)
resources\lang\ja\validation.php
任意のLaravelのバージョンを選んでサイトに表示されている「言語ファイルの内容」をコピペしてvalidation.phpを作成します。
Laravel 6.x validation.php言語ファイル (公式) |
Laravel 7.x validation.php言語ファイル (公式) |
Laravel 8.x validation.php言語ファイル (公式) |
次の位置にファイルを設置します。
resources\lang\ja\validation.php
末尾にあるattributesにはDBのテーブル項目などを任意に追加します。
[例]
'attributes' => [ "name" => "名前", "body" => "本文", "email" => "メールアドレス", "created_at" => "作成日時", "updated_at" => "更新日時", ],
ビューでname(名前)を表示する際には次のようにします。
{{ trans('validation.attributes.name') }}
5. ログイン系機能を削除する ※不要な場合
database\migrations
ログイン系の機能が不要の場合はマイグレーションファイルを削除する。
database\migrations\2014_10_12_000000_create_users_table.php database\migrations\2014_10_12_100000_create_password_resets_table database\migrations\2019_08_19_000000_create_failed_jobs_table
routes\api.php
不要なルーティングも削除する。
// 以下をコメントにする // Route::middleware('auth:api')->get('/user', function (Request $request) { // return $request->user(); // });
6. Bootstrap/jQueryを使用する
public
公式サイト等から直接ダウンロードしてpublicに設置する。
Bootstrap (公式) |
jQuery (公式) |
laravel/uiを使うとnode_modulesフォルダに100MBぐらいの関連ファイルが作成されるので、Vue.js、Reactなどが必要ないならば公式サイトから入手すると良いです。
7. 各種コマンド (php artisan)
// Laravelアプリケーションを実行する php artisan serve // Laravelフレームワークのバージョンなどの表示 php artisan -v // ルーティングの一覧を表示する php artisan route:list // コントローラーの作成 ※単数形 or 複数形 + Controller // ※app\Http\Controllersに作成される php artisan make:controller HelloController --resource // --resourceは以下のメソッドを自動生成 // index/create/store/show/edit/update/destroy // モデルを作成する ※単数形 // ※appに作成される php artisan make:model User // サービスプロバイダの作成 // ※app\Providersに作成される php artisan make:provider HelloServiceProvider // ミドルウェアの作成 // ※app\Http\Middlewareに作成される php artisan make:middleware HelloMiddleware // フォームリクエストの作成 // ※app\Http\Requestsに作成される php artisan make:request HelloRequest // バリデーションルールの作成 // ※app\Rulesに作成される php artisan make:rule Myrule // マイグレーションファイルの作成 // ※テーブル名は複数形、モデル名は単数形 php artisan make:migration create_users_table // マイグレーションの実行 php artisan migrate // マイグレーションのロールバック php artisan migrate:rollback // シーダーファイルの作成 // ※database/seedsに作成される php artisan make:seeder UsersTableSeeder // シーディングの準備 composer dump-autoload // シーディングを実行する php artisan db:seed // .envのAPP_KEYを再生成する php artisan key:generate
次はコマンドでPHPコードを実行する方法です。
// コマンドでPHPコードを実行できるようにする php artisan tinker // コード例1 ※時間を表示する echo Carbon\Carbon::now(); exit; // コード例2 ※DBを操作する $param = ['name' => 'ユーザー名', 'email' => 'admin@example.com', 'password' => Hash::make('12345678') ]; DB::table('users')->insert($param); exit;
8. デバッグ、ダンプ、SQLの出力
// コントローラー/ビュー // ※dd = dump and die = dump()して停止する dd() dump() // ビュー(PHP標準機能) var_dump() // [SQL]DBクラス(クエリビルダ) dd(DB::table('users')->where('id',1)->toSql()); // [SQL]Eloquent ORM dd(User::where('id',1)->toSql());
9. localhost:8000が表示されない場合の対処方法
ローカルサーバーが起動中にControl + c以外でターミナルを閉じた場合はphp artisan serveのコマンドを実行してもローカルサーバーは正常に動作しません。※Control + zはダメ
[対処方法]
ローカルサーバーをまず閉じます。
次のpsコマンドでプロセス一覧を表示します。そして、該当のPHPのプロセスをkillで強制終了してからローカルサーバーを起動させればOKです。
--- ps --- PID TTY TIME CMD 8 tty1 00:00:00 bash 630 tty1 00:00:00 php 634 tty1 00:00:00 sh 635 tty1 00:00:00 php7.4 670 tty1 00:00:00 php 674 tty1 00:00:00 sh 682 tty1 00:00:00 ps --- kill 635 ---
10. キャッシュ/ログ/セッションファイルの削除
// アプリケーションのキャッシュをクリア php artisan cache:clear // ビューのキャッシュをクリア php artisan view:clear // 設定ファイルのキャッシュをクリア php artisan config:clear // ルートのキャッシュをクリア php artisan route:clear - // セッションを手動で削除する storage\framework\sessions // ログを手動で削除する storage\logs\laravel.log
11. 本番環境用の設定
CSS/JSのコンパイル(圧縮・統合)
Bootstrap、Vue.js、Reactなどをnpmで使用している際には次のコマンドでCSS/JSファイルをコンパイル(圧縮・統合)する事が出来ます。
npm run production
その後にnpm関連のファイルを削除したい場合は
・node_modulesフォルダ(約100M) |
・package-lock.json |
を削除します。
次のコマンドで復活可能です。
// インストールと開発用ビルド npm install && npm run dev
.env
APP_ENV=production APP_DEBUG=false
その他に色々とサイトを見てみると
のAPP_URLも設定しているようですが、私の環境では上記の初期状態のままでも問題なく動作しています。気になる方は設定すると良いです。
Webサーバ設定
Laravel 6.x インストール (Webサーバ設定) (公式) |
Laravel 7.x インストール (Webサーバ設定) (公式) |
Laravel 8.x インストール (Webサーバ設定) (公式) |
ディレクトリのパーミッションなども記載されているので参考にして下さい。
VPS、クラウド
Laravelをサブディレクトリで本稼働させる [Nginx/Apache]
レンタルサーバー
必ず確認する事!
URLから「.env」ファイルにアクセスできない事を確認します。
12. 運用・保守
13. 基本的な機能
スコープ(モデルの独自機能)
Laravelの「スコープ」はモデルに独自機能を付与するものです。
ビューコンポーザ(サービスプロバイダ)
Laravelの「ビューコンポーザ」はコントローラーの処理後にビューがレンダリングされる前に実行されるサービスプロバイダ(処理)です。
コントローラー、ビューのどちらにも記述したくないビジネスロジックをビューコンポーザで記述します。
フォームリクエスト(バリデーション)
Laravelの「フォームリクエスト」はバリデーションの処理を専門に行います。コントローラーとバリデーションの処理を切り分けたい際に使用します。
ミドルウェア(カーネル)
Laravelの「ミドルウェア」ではコントローラーが処理する前にログイン処理などを差し込む事が可能です。それに加えて、コントローラー/ビューの処理が終わった後にも何らかの処理をする事が可能です。
カスタムバリデーションルール
Laravelで禁止用語(NGワード)のバリデーション処理を行うカスタムルールのファイルを作る方法と使い方です。
14. ルーティングの例 (Route::resource())
routes\web.php
Route::resource('cats', 'CatsController')
コマンド
php artisan route:list
結果
GET|HEAD | cats | cats.index | \CatsController@index GET|HEAD | cats/create | cats.create | \CatsController@create POST | cats | cats.store | \CatsController@store GET|HEAD | cats/{cat} | cats.show | \CatsController@show GET|HEAD | cats/{cat}/edit | cats.edit | \CatsController@edit PUT|PATCH | cats/{cat} | cats.update | \CatsController@update DELETE | cats/{cat} | cats.destroy | \CatsController@destroy
{cat}のルートパラメータは次のように$idでも受け取れます。
public function show($id) { } public function edit($id) { } public function update(Request $request, $id) { } public function destroy($id) { }
15. オリジナルのログイン機能
16. オープンソースで公開する
次のページで更新ファイルを確認できます。
指定日付以降に更新されているファイルの一覧を取得する [ブラウザ版]
17. フロントエンド(React、Vue.js)
[Vue.js]
Vue.jsの使い方と各種初期設定
Vue Routerの使い方
Vuexの使い方
Laravel + Vue.js + AxiosでCRUDのサンプルプロジェクト
Laravel + Vue.jsで作るSPAのブログシステム
[React]
Reactの使い方と各種初期設定
Laravel + React + AxiosでCRUDのサンプルプロジェクト
関連記事
前の記事: | SQLSTATE[42000]: Syntax error or access violation: 1055 [Laravelのエラー] |
次の記事: | Laravelをサブディレクトリで本稼働させる [Nginx/Apache] |