改修・アップデート計画(進め方の一例)

現行のコードを拝見する前の段階の案です。調査の結果に合わせて、工程と順番は貴社のシステムに合わせて組み直します。

進め方

1
調査

現状調査・課題の洗い出し

ソース・DB構造・本番環境のPHP/Laravel/依存パッケージのバージョンを確認。現行の勤怠フローと「操作性・管理面で困っている点」をヒアリングして一覧にします。

2
計画

改修方針・アップデート計画の提案

更新先のバージョン、段階アップグレードの経路、勤怠機能の改修範囲、作業の順番とリスクを1つの計画書にまとめ、ご確認いただいてから着手します。

3
土台

既存機能の「動作の記録」を先に作る

更新前に、主要画面・集計結果・CSVの出力を自動テストと保存データで記録しておき、更新後に「前と同じ結果か」を機械的に比較できるようにします。

4
更新

PHP・Laravelのバージョンアップ

メジャーを1つずつ上げ、各段階でテストを通してから次へ進みます。非推奨機能・互換性の問題を直し、セキュリティ・性能も合わせて見直します。

5
刷新

勤怠管理機能の刷新

打刻・自動集計・遅刻早退欠勤・休暇申請と承認・一覧・月次CSV・管理者修正を、このデモの画面構成で実装します。計算ルールは貴社の就業規則に合わせて設定化します。

6
切替

検証・移行・リリース

ステージング環境で受入確認、既存勤怠データの移行リハーサル、本番切替の手順書と切り戻し手順を用意してリリースします。

対応バージョンの整理 2026年11月6日時点

種別版サポート
PHP8.3セキュリティ修正のみ(〜2027/12/31)
8.4通常サポート〜2026/12/31、セキュリティ〜2028/12/31
8.5通常サポート〜2027/12/31、セキュリティ〜2029/12/31
Laravel12PHP 8.2〜8.5。バグ修正は終了済みで、セキュリティ修正のみ〜2027/2/24
13(2026/3/17公開)PHP 8.3〜8.5。バグ修正〜2027年Q3、セキュリティ〜2028年Q1

出典:php.net Supported Versions、Laravel Release Notes。
目安:現行が古い場合でも、更新先は「PHP 8.4以上 + Laravel 13」を第一候補にします(最終決定は、サーバー環境と依存パッケージの対応状況を調査したうえで)。

バージョンアップで確認する項目

  • PHPの非推奨・廃止(動的プロパティの作成〔8.2〜〕、暗黙のnull許容引数〔8.4〜〕など)を静的解析で洗い出す
  • Laravel本体のアップグレードガイドに沿った差分対応(設定・ミドルウェア・認証まわり)
  • 依存パッケージの対応状況の確認。未対応・メンテナンス終了のものは代替案を提示
  • composer audit による既知の脆弱性チェックと、設定面(デバッグ・キャッシュ・ログ)の見直し
  • N+1クエリ・インデックスなど、勤怠の一覧/集計まわりの性能確認
  • 更新前後で「集計結果・CSV・主要画面」が一致することの自動比較

勤怠の計算ロジック(PHP)このデモの画面と同じ規則・PHP 8.3 で自動テスト 7件合格

実働・時間外・深夜・遅刻・早退・休憩不足の判定を、画面から独立したServiceクラスにまとめます。就業規則の変更や、あとから別の画面(API・バッチ)で使い回すときも、ここだけ直せば済みます。

final class AttendanceCalculator
{
    public function calculate(?int $in, ?int $out, int $breakMinutes, string $type = 'work'): array
    {
        // 打刻漏れ
        if ($in === null || $out === null) { /* フラグを付けて返す */ }

        $work  = max(0, $out - $in - $breakMinutes);            // 実働
        $over  = max(0, $work - $this->legalMinutes);           // 法定超(時間外)
        $night = max(0, min($out, 1440) - max($in, $this->nightFrom)); // 深夜(22:00〜)

        // 遅刻・早退 / 休憩不足(6h超45分・8h超60分)の判定 ...
    }
}