Laravelで作る業務改善ツールの定番の初期設定をまとめました

業務効率化は現代のビジネスにおいて重要な要素です。複雑な業務に合わせたツールを開発していく中で、定番の機能を提供する事が多くあります。

この記事では、Laravelを用いて業務改善ツールを作成する際の基本的なテンプレートをご紹介します。

普段からシステム制作としてLaravelアプリケーションを提供していく中で、毎回実装するものとして「ユーザー管理」があります。社内向けや独立したチームに向けてカスタマイズしたシステム制作をする中で無くてはならない機能です。

全体として対応する項目としては以下になります。

  • ユーザー管理 (Jetstreamを使用)
  • TailwindCSS
  • Alpine.js
  • Livewire
  • Laravel Pint
  • エラーログなどの日本語化

を対応するため、本来注力すべき業務改善の機能を開発する事が可能になります。

ちなみに、今回の記事で紹介している方法はボイラープレートとしてGitHubに公開してあります。

https://github.com/soramugi/lara-flow-boilerplate

今後、他にも必要な初期機能なども出てくるかもしれません。その際にはブログ記事の内容は更新されず、こちらのリポジトリのみ反映されていくので、この記事以上に初期設定を知りたい方はリポジトリの方をご確認ください。

それでは、初めていきましょう。

初期設定

composer create-project laravel/laravel example
cd example
APP_DOMAIN=lara-flow-boilerplate.test
APP_URL=https://${APP_DOMAIN}

LOG_CHANNEL=daily

DB_CONNECTION=sqlite
# DB_DATABASE=laravel # コメントアウトすれば database/database.sqlite が適応される

MAIL_MAILER=sendmail
MAIL_FROM_ADDRESS="no-replay@${APP_DOMAIN}"
touch database/database.sqlite

# コード整形用ツール
composer require laravel/pint --dev

# 会員登録機能のセットアップ
composer require laravel/jetstream
php artisan jetstream:install livewire

# 日本語化
composer require laravel-lang/common --dev
php artisan lang:add ja
php artisan lang:update


php artisan migrate
    'features' => [
        Features::registration(),
        Features::resetPasswords(),
        Features::emailVerification(), // コメントアウトを外す
        Features::updateProfileInformation(),
        Features::updatePasswords(),
        Features::twoFactorAuthentication([
            'confirm' => true,
            'confirmPassword' => true,
            // 'window' => 0,
        ]),
    ],
    'timezone' => 'Asia/Tokyo',

    'locale' => 'ja',
Route::get('/', function () {
    return view('welcome');
});


Route::middleware([
    'auth:sanctum',
    config('jetstream.auth_session'),
    'verified',
])->group(function () {
    Route::get('/dashboard', function () {
        return view('dashboard');
    })->name('dashboard');
});


↓ 以下に変更、ダッシュボード内の表示をトップページに変更

Route::middleware([
    'auth:sanctum',
    config('jetstream.auth_session'),
    'verified',
])->group(function () {
    Route::get('/', function () {
        return view('dashboard');
    })->name('dashboard');
});
    public const HOME = '/dashboard';

↓

    public const HOME = '/';
// 未ログイン時にはログインページに飛ばされるので、ログインページからアカウント作成ページのリンクを追加

                <a class="underline text-sm text-gray-600 hover:text-gray-900 rounded-md focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500" href="{{ route('register') }}">
                    {{ __('Create Account') }}
                </a>
// MustVerifyEmail のコメントアウトを外してメール送信されるように変更

use Illuminate\Contracts\Auth\MustVerifyEmail;

class User extends Authenticatable implements MustVerifyEmail
// 新規登録時のメールアドレスを指定する、社内向けのアドレスを使用することで使えるユーザーを限定する

        Validator::make($input, [
            'name' => ['required', 'string', 'max:255'],
            'email' => [
                'required',
                'string',
                'email',
                'max:255',
                'regex:/(.*)@example\.com/i', // TODO: 会員登録ができるメールアドレスを指定
                'unique:users',
            ],
            'password' => $this->passwordRules(),
            'terms' => Jetstream::hasTermsAndPrivacyPolicyFeature() ? ['accepted', 'required'] : '',
        ])->validate();
# プロジェクトルートに置く事でドキュメントルート直下に置いて公開できる

<IfModule mod_rewrite.c>
    RewriteEngine on

    RewriteCond %{HTTPS} off
    RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R,L]

    RewriteCond %{REQUEST_URI} !/public
    RewriteRule ^(.*)$ public/$1 [L]
</IfModule>

<FilesMatch "^\.">
    Require all denied
    Satisfy All
</FilesMatch>
# 仕上げ

php artisan optimize:clear
npm run build

以上。

最後に

Laravelを使用した業務改善ツールの作成を数多くこなしてきました。その経験をこの記事にまとめてみました。

会員登録機能やデザインの初期設定など、基本的な設定はこれで事足りるかと思います。あとは業務改善に必要な機能を作り込むだけなので、未知の機能を実現する楽しいプログラミング作業だけが残ります。

繰り返しになりますが、今回の記事で紹介した内容を既に適応したプロジェクトはボイラープレートとして公開してあります。

https://github.com/soramugi/lara-flow-boilerplate

これ以上の設定が必要になる場合も想定されます。その場合には上記のボイラープレートのみに適応される想定なので、もっと詳しく知りたい場合にはこちらを参照ください。

この記事が参考になりましたら幸いです。

投稿者


Comments

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA