改修・アップデート計画(進め方の一例)
現行のコードを拝見する前の段階の案です。調査の結果に合わせて、工程と順番は貴社のシステムに合わせて組み直します。
進め方
1
調査
現状調査・課題の洗い出し
ソース・DB構造・本番環境のPHP/Laravel/依存パッケージのバージョンを確認。現行の勤怠フローと「操作性・管理面で困っている点」をヒアリングして一覧にします。
2
計画
改修方針・アップデート計画の提案
更新先のバージョン、段階アップグレードの経路、勤怠機能の改修範囲、作業の順番とリスクを1つの計画書にまとめ、ご確認いただいてから着手します。
3
土台
既存機能の「動作の記録」を先に作る
更新前に、主要画面・集計結果・CSVの出力を自動テストと保存データで記録しておき、更新後に「前と同じ結果か」を機械的に比較できるようにします。
4
更新
PHP・Laravelのバージョンアップ
メジャーを1つずつ上げ、各段階でテストを通してから次へ進みます。非推奨機能・互換性の問題を直し、セキュリティ・性能も合わせて見直します。
5
刷新
勤怠管理機能の刷新
打刻・自動集計・遅刻早退欠勤・休暇申請と承認・一覧・月次CSV・管理者修正を、このデモの画面構成で実装します。計算ルールは貴社の就業規則に合わせて設定化します。
6
切替
検証・移行・リリース
ステージング環境で受入確認、既存勤怠データの移行リハーサル、本番切替の手順書と切り戻し手順を用意してリリースします。
対応バージョンの整理 2026年11月6日時点
| 種別 | 版 | サポート |
|---|---|---|
| PHP | 8.3 | セキュリティ修正のみ(〜2027/12/31) |
| 8.4 | 通常サポート〜2026/12/31、セキュリティ〜2028/12/31 | |
| 8.5 | 通常サポート〜2027/12/31、セキュリティ〜2029/12/31 | |
| Laravel | 12 | PHP 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分)の判定 ...
}
}