ホーム > カテゴリ > PHP・Laravel・CakePHP >

Laravelプロジェクトの各種初期設定

CentOSで各種サーバー構築(目次)

移行ガイド

Laravel 6.xから9.xへアップグレード

目次

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=http://localhost

のAPP_URLも設定しているようですが、私の環境では上記の初期状態のままでも問題なく動作しています。気になる方は設定すると良いです。

Webサーバ設定

Laravel 6.x インストール (Webサーバ設定) (公式)
Laravel 7.x インストール (Webサーバ設定) (公式)
Laravel 8.x インストール (Webサーバ設定) (公式)

ディレクトリのパーミッションなども記載されているので参考にして下さい。

VPS、クラウド

Laravelをサブディレクトリで本稼働させる [Nginx/Apache]

レンタルサーバー

レンタルサーバー(Apache)でLaravelを動かす

必ず確認する事!

URLから「.env」ファイルにアクセスできない事を確認します。

12. 運用・保守

Laravelをバージョンアップする

13. 基本的な機能

スコープ(モデルの独自機能)

スコープ(モデルの独自機能)

Laravelの「スコープ」はモデルに独自機能を付与するものです。

ビューコンポーザ(サービスプロバイダ)

ビューコンポーザ(サービスプロバイダ)

Laravelの「ビューコンポーザ」はコントローラーの処理後にビューがレンダリングされる前に実行されるサービスプロバイダ(処理)です。

コントローラー、ビューのどちらにも記述したくないビジネスロジックをビューコンポーザで記述します。

フォームリクエスト(バリデーション)

フォームリクエスト(バリデーション)

Laravelの「フォームリクエスト」はバリデーションの処理を専門に行います。コントローラーとバリデーションの処理を切り分けたい際に使用します。

ミドルウェア(カーネル)

ミドルウェア(カーネル)

Laravelの「ミドルウェア」ではコントローラーが処理する前にログイン処理などを差し込む事が可能です。それに加えて、コントローラー/ビューの処理が終わった後にも何らかの処理をする事が可能です。

カスタムバリデーションルール

NGワードのカスタムバリデーションルールを作る

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のサンプルプロジェクト





関連記事



公開日:2020年11月14日 最終更新日:2022年04月14日
記事NO:02845