Laravel 2025.12.25

Laravel9から10へのアップグレード実践ガイド

約7分で読めます

Laravel9から10へのアップグレードで悩んでいませんか?本記事では実際のプロジェクトでの経験をもとに、安全なアップグレード手順と注意点を解説します。

こんな悩みありませんか?

「Laravel9のプロジェクトをLaravel10にアップグレードしたいけど、何から始めればいいか分からない」 「アップグレード中にシステムが動かなくなったらどうしよう」 「本番環境に影響を与えずに安全にアップグレードする方法が知りたい」

こうした悩みをお持ちの開発者の方は多いのではないでしょうか。私たちFivenine Designでも、多くのクライアントからLaravelアップグレードのご相談をいただきます。

Laravel10アップグレードで得られる成果

まず、Laravel10にアップグレードすることで何が変わるのかをお話しします。

あるクライアント様の事例では、Laravel9から10へのアップグレードにより以下の改善が見られました:

  • パフォーマンスが約15%向上:新しいクエリビルダーの最適化により、データベース処理が高速化
  • セキュリティの強化:最新のセキュリティパッチが適用され、脆弱性リスクが大幅に軽減
  • 開発効率の向上:新機能により、同じ機能を実装するのに必要なコード量が20%削減

事前準備:失敗しないための下準備

バックアップの作成

過去の経験から、「バックアップを取らずにアップグレードして失敗」というケースを何度も見てきました。必ず以下を実行してください:

# データベースのバックアップ
mysqldump -u username -p database_name > backup_$(date +%Y%m%d).sql

# プロジェクト全体のバックアップ
tar -czf project_backup_$(date +%Y%m%d).tar.gz /path/to/your/project

開発環境での検証

本番環境でいきなりアップグレードするのは危険です。まずは開発環境で以下の手順を実行しましょう。

実践的なアップグレード手順

1. Composerの要件確認

Laravel10ではPHP 8.1以上が必要です。まずPHPバージョンを確認:

php -v

PHP 8.0以下の場合は、先にPHPのアップグレードが必要です。

2. composer.jsonの更新

composer.jsonのLaravelバージョンを更新:

{
    "require": {
        "php": "^8.1",
        "laravel/framework": "^10.0"
    }
}

3. 依存関係の更新

composer update

この時点でエラーが発生する場合があります。よくあるのが、サードパーティパッケージの互換性問題です。

4. 設定ファイルの調整

config/sanctum.php の更新

Laravel10では、Sanctumの設定に変更があります:

// 新しい設定項目
'expiration' => null,
'token_retrieval' => [
    'header' => 'Authorization',
    'cookie' => 'laravel_token',
],

5. 非推奨機能の対応

Laravel10で削除された機能の対応が必要です。特に注意すべき点:

  • dispatchNow()メソッドの削除dispatchSync()に置き換え
  • Route::home()の削除:手動でルート定義が必要
// 修正前
MyJob::dispatchNow($data);

// 修正後
MyJob::dispatchSync($data);

よくある失敗とその対処法

ケース1:パッケージの互換性エラー

「あるクライアントでは、決済システムのパッケージがLaravel10に対応していませんでした。」

対処法:

  • パッケージの最新版を確認
  • 代替パッケージの検討
  • 必要に応じてフォークして修正

ケース2:カスタムミドルウェアのエラー

症状:

Method Illuminate\Http\Request::route() should not be accessed before running the routing middleware

対処法: ミドルウェアの優先度を調整し、ルーティングミドルウェアの後に実行されるよう設定。

テストとデプロイ

自動テストの実行

# 全テストの実行
php artisan test

# 特定の機能テスト
php artisan test --testsuite=Feature

段階的デプロイ

本番環境でのデプロイは段階的に行うことをお勧めします:

  1. ステージング環境での最終確認
  2. メンテナンスモードでの本番デプロイ
  3. 監視強化期間の設定
# メンテナンスモードの有効化
php artisan down

# アップグレード作業
composer install --no-dev --optimize-autoloader
php artisan migrate
php artisan config:cache
php artisan route:cache

# メンテナンスモードの解除
php artisan up

アップグレード後の監視ポイント

アップグレード完了後、以下の点を重点的に監視してください:

  • エラーログの確認:新しいエラーが発生していないか
  • パフォーマンス監視:応答時間に変化がないか
  • 機能テスト:重要な機能が正常に動作するか

今すぐ始めるべきアクション

Laravel9から10へのアップグレードを検討している方は、まず以下から始めてください:

  1. 現在の依存関係を確認composer showでパッケージの互換性をチェック
  2. テスト環境の準備:本番環境と同じ構成のテスト環境を構築
  3. バックアップ計画の策定:データベースとファイルのバックアップ手順を文書化

まとめ

Laravel9から10へのアップグレードは、適切な準備と段階的なアプローチを取ることで、安全に実行できます。パフォーマンスの向上やセキュリティの強化など、アップグレードによる恩恵は大きいものです。

ただし、プロジェクトの規模や複雑さによっては、専門的な知識と経験が必要になる場合もあります。不安がある場合は、無理をせずに専門家にご相談することをお勧めします。

Fivenine Designでは、20年以上のWeb開発実績をもとに、Laravel アップグレードのサポートも行っております。お困りの際は、お気軽にご相談ください。

この記事をシェア