「Laravelの「マルチ認証」、最適なセッション管理とは?」~【laravel】今週の人気記事TOP5(2025/09/14)
【2025/9/14】「Laravelの「マルチ認証」、最適なセッション管理とは?」今週の人気記事TOP5(2025/09/14)
Laravel11 マルチ認証環境でのセッション管理をカスタマイズ
Laravelでマルチ認証(Admin/User)を実装する際、デフォルトのセッション管理ではuser_id
カラムが共有されるため問題が発生します。解決策として、sessions
テーブルにadmin_id
カラムを追加し、カスタムセッションハンドラーを作成します。このハンドラー内で、認証状態に応じてadmin_id
またはuser_id
に値を設定し、もう一方をnull
にします。AppServiceProvider
でカスタムハンドラーを登録し、動作確認を行います。パフォーマンスとセキュリティに注意し、高負荷環境ではRedisの利用を検討します。
AWS SES(SNS)×Laravelのバウンスメール対策
AWS SESのバウンスメール対策をLaravelで実装する方法を解説。バウンスメールはハードバウンスとソフトバウンスの2種類があり、対策しないとアカウント制限の可能性がある。実装では、SESからのバウンス通知をSNS経由で受け取り、LaravelのRoute, Controller, UseCase, Repository, Presenter層で処理する。UseCase層でSNSサブスクリプションの確認と、バウンスメールアドレスの保存を行う。SubscriptionConfirmationにはステータスコード200を返す必要がある。
PHP 5.2からLaravel 11への大規模リニューアル #2 アーキテクチャ設計と技術選定
レガシーシステムのリニューアルで、Claude Codeの分析に基づきLaravel 11を採用。エコシステム、長期サポート、日本語情報の充実度、ホスティング環境との相性が決め手。
旧システムの課題(ビジネスロジックとプレゼンテーションの混在、グローバル変数の多用など)を解消するため、データベースを正規化し、週単位時間システムを導入。
4段階の権限レベルを持つ認証・認可システム、RESTful API、多層キャッシュ、セキュリティ対策を実装。
X(Twitter)、OpenAIのAPI連携も行った。
次回はデータ移行戦略(文字コード変換、段階的移行、自動化、整合性チェック)について解説予定。
composer global require laravel/installerしたのにlaravel: not found
Docker環境でcomposer global require laravel/installer
後、laravel new .
がlaravel: not found
エラーになる問題。原因はcomposerのグローバルディレクトリがデフォルトの/tmp
になっているため、laravel
コマンドがPATHに含まれていないこと。解決策は、export COMPOSER_HOME="$HOME/.config/composer"
でグローバルディレクトリを適切な場所に変更し、その後PATHを通す(Dockerfileへの記述が推奨)。
PHP 5.2からLaravel 11への大規模リニューアル #3 データ移行戦略と文字コード問題への対処
PHP5.2からLaravel11へのリニューアルにおけるデータ移行戦略が解説されています。
EUC-JPからUTF-8mb4への文字コード変換、表記揺れのあるパーソナリティ名寄せ、HTML形式のイベントレポート移行が主要な課題でした。
文字コード変換では、AIを活用しつつも実データでの目視確認を重視。パーソナリティ管理では、個人・ユニットの階層構造を導入。Eventernoteとの連携でイベント情報を補完しました。
65個のArtisanコマンドを生成し移行を自動化。7割の自動化と3割の手動修正でデータ品質を確保しました。
【2025/9/7】「モダンLaravel、どこまで進化してる? あなたの現場は?」今週の人気記事TOP5(2025/09/07)
[Laravel] 10年付き合うことになるWebAPIをチームで作るときに考えたこと
10年間の運用を想定したWebAPIリプレイスプロジェクトにおいて、オンプレミス環境でAlmaLinuxとコンテナを採用し、Laravelを導入。チームのスキルセットに合わせてディレクトリ構成を再考し、UseCaseとInternalディレクトリを設け、型ヒントの活用やアンチパターンの定義を行った。
課題として、テストコードの浸透、コードレビュー文化の醸成、ドメイン知識の共有、認証・認可の強化が残る。将来的なアーキテクチャ変更を見据えつつ、現状のチームに適したソフトな設計を目指す一方、リファクタリングの経済効果を定量的に示す必要性を感じている。
なぜlaravelのbladeで@phpみたいなことができるのか
LaravelのBladeファイルで@phpなどの独自シンタックスが使えるのは、Laravelがレスポンス生成時にBladeファイルをコンパイルするからです。BladeCompiler.phpが独自シンタックスをPHPに変換し、storage/framework/views/にキャッシュ。その後、PHPコードがrequireされ、ブラウザが解釈可能なHTMLやJSに変換されてレスポンスとして返されます。この仕組みを理解することで、フロントエンドとバックエンドの役割分担が明確になり、開発時の疑問を解消できます。
PHP 5.2からLaravel 11への大規模リニューアル #1 プロジェクト概要と課題分析
20年以上稼働するアニメ・ラジオ番組情報サイト「Aniradi Network」の、PHP 5.2からLaravel 11への大規模リニューアルプロジェクトの概要。レガシーシステムはセキュリティリスク、メンテナンス性、パフォーマンスに課題を抱えていた。リニューアルを阻んでいた要因を、Claude Codeの導入により、開発速度、技術的ハードル、品質担保の面で解決。PHP 8.3 + Laravel 11、MySQL 8.0への移行、セキュリティ強化、保守性向上、ユーザー体験の向上が目標。段階的な移行とデータ移行戦略、文字コード変換の自動化を実施。
Laravel + Vite + α のモダンフロントエンド環境を5分で立ち上げる手順
LaravelでViteを使ったモダンなフロントエンド環境を構築する手順を紹介。Docker環境構築にLaravel Sailを使用し、laravel/breeze
で認証機能付きのスターターキットを導入。artisan breeze:install
コマンドでBootstrap/Vue/Reactの足場を生成し、npm install
とnpm run dev
で依存関係をインストール、ビルドする。SailとBreezeを活用することで、高速なHMR(ホットリロード)による快適な開発環境が容易に実現可能。
RailsからLaravelを眺めるシリーズまとめ|RailsとLaravelの違いを整理する
Rails経験者がLaravelを学ぶ、あるいはLaravelエンジニアがRailsを知る際に役立つ、RailsとLaravelの比較シリーズのまとめ。Service Container、ORM(ActiveRecord vs Eloquent)、責務分離、Hotwire vs Livewire、テスト(RSpec vs PHPUnit)、バリデーション(FormObject vs FormRequest)等の違いを、コード例を交えながら解説。両フレームワークの設計思想の違いを理解することを目的とする。
Discussion