Laravel Pintの使い方:PHPコードの書式を整えてCIで検査する
2026.09.15
Laravel Pintを使ってPHPコードの書式を整える方法を紹介します。ローカルでの自動修正、CIで書式違反だけを検査する--test、対象範囲の指定、pint.jsonの設定、Bladeファイルを扱う際の注意点を整理し、Pintを導入する判断基準も説明します。
PHPUnitでPHPのテストを始める:正常系・例外・モックの基本
2026.09.14
PHP 8.3とPHPUnit 12.5を使い、フレームワークやデータベースに依存しないPHPの例で、テストの考え方からComposerによる導入、基本的なアサーション、データプロバイダー、例外、モックまでを解説し、PHPUnitの基本を整理します。
GitHub ActionsでPHP・LaravelのCIを始める:テスト・Lint・ビルドを自動化するWorkflowの基本
2026.09.13
PHP・Laravelプロジェクトを対象に、GitHub ActionsのWorkflow、イベント、ジョブ、ステップの基本を説明します。Composerのテスト、npm ci、フロントエンドビルド、Laravel PintをCIへ組み込む方法に加え、featureブランチやPull Requestで実行される条件、失敗時のログ確認、Secrets・権限・Actionのバージョン管理についても整理します。
PHPでXMLを読み込む:SimpleXMLで要素・属性・名前空間を取得する
2026.09.11
PHPのSimpleXMLを使ってXMLファイルを読み込み、要素や属性、繰り返し要素、名前空間付きの要素を取得する方法を解説します。XPathによる検索結果を配列へ変換する処理に加え、解析失敗、欠損値、文字コード、外部XMLを扱う場合の注意点も紹介します。
Laravel 13でArtisanコマンドを作成する:引数・オプション・dry-runの基本
2026.09.10
Laravel 13でArtisanコマンドを作成する方法を、引数・オプション・コンソール出力・終了コードの基本から解説します。日時指定した記事を定期的に公開するDB更新処理を例に、--dry-runで対象を確認してから安全に実行する方法や、スケジューラー・cronでの定期実行についても紹介します。
LaravelのFeature Testで開発用DBを初期化してしまった:Codex運用で学ぶテストDBの多層防御
2026.09.07
CodexにLaravelのFeature Test実行を依頼した際、テスト用DBではなくローカルの開発用DBへ接続した状態でRefreshDatabaseが実行され、データが失われる事故が発生しました。この記事では、PHPUnitのforce="true"による環境変数固定、DB_URLの無効化、config:clearのComposer Script化、Laravel起動後のDB接続先ガード、通常テストとIntegration Testの分離など、テストDBの誤接続を防ぐ多層防御を紹介します。
PHP 8.3でHTMLのtableを解析する:DOMDocumentとDOMXPathで一覧データを抽出
2026.09.05
PHP 8.3のDOMDocumentとDOMXPathを使い、HTMLファイルに記載された一覧データから、特定の情報を抽出する方法を解説します。DOMElementやDOMNodeの扱い、XPathによるtableの検索、不正なHTMLや日本語文字コードへの注意点に加え、外部URLからHTMLを取得する場合に確認したい利用条件やサーバー負荷についても説明します。
PHPでメールOTPによる追加認証を実装する:発行・保存・送信・検証の設計
2026.09.04
PHP 8.3以上を対象に、パスワードログイン後にメールOTPで追加認証を行う処理を、フレームワークに依存しない形で整理します。コードの生成・保存・送信・検証、期限切れや再送、試行回数制限を扱い、メールOTPをTOTPやパスキーと同等に扱わないための注意点も説明します。
Laravel 13で既存のテーブルを使ってログイン機能を実装する
2026.09.02
Laravel 13の既存連載で作成したmembersテーブルを認証用ユーザーとして流用し、Memberモデルと認証プロバイダーを設定します。SQLiteに保存したユーザー情報を使ったメールアドレス・パスワード認証、ログイン済み画面の表示、データベースセッション、ログアウト時のセッション破棄までを実装します。
PHP 8.3のcURLでISBNから書誌情報を取得する:openBD・Google Books API・NDLサーチ
2026.09.01
PHP 8.3のcURLを使い、ISBNをもとにopenBD、Google Books API、NDLサーチへアクセスする実装例を紹介します。JSON/XMLの解析、書誌情報の共通形式への変換、通信エラーや項目欠損の扱いに加え、openBD v1の終了予定やNDLサーチの利用条件も整理します。
Laravel 13+Vue.jsで画像・CSVを非同期アップロードする:FormData・ファイル検証・非公開保存
2026.08.31
Laravel 13のBladeに組み込んだVue.jsから、FormDataを使って画像またはCSVを非同期で送信する方法を解説します。JPEG・PNGの画像検証、CSVの文字コード変換と簡易的な内容確認、20MBのサイズ制限、非公開ディスクへの保存、CSRF・バリデーションエラー処理を実装し、fetchを基本にaxiosとの違いも整理します。
Laravel 13の登録フォームにPwned Passwords APIを組み込む:漏洩パスワードの確認と障害時の扱い
2026.08.30
Laravelで、説明用の登録フォームにPwned Passwords APIを組み込みます。SHA-1ハッシュの先頭5文字だけをAPIへ送り、返されたサフィックスをアプリケーション側で照合します。漏洩検出時はフォームエラー、API障害時は警告を表示して登録を続ける構成と、カスタムバリデーションルールとの使い分けを解説します。
Microsoft Entra IDの属性とクレームをPHPで取得する:SAMLResponseとonelogin/php-samlの対応方法
2026.08.29
Microsoft Entra IDの「属性とクレーム」で設定したユーザー属性を、SAMLResponseのNameIDやAttributeStatementで確認し、onelogin/php-samlのgetNameId()・getAttributes()でPHPから取得する方法を解説します。クレーム名とPHP側の配列キーが一致しない場合の確認ポイントも整理します。
PHPの正規表現を使い分ける:preg_match・preg_match_all・preg_replaceと入力検証
2026.08.28
PHPのpreg_match、preg_match_all、preg_replaceを使い、一致した値の取り出し、複数箇所の抽出、文字列置換を行う方法を解説します。u修飾子やmb_check_encodingにも触れ、メールアドレスの形式検証では、正規表現やfilter_var()だけで到達性・所有確認まではできないことを説明します。
Laravel 13をApache・XAMPPで動かす:VirtualHost・.htaccess・public_htmlの配置方法
2026.08.27
Laravel 13のプロジェクトをWindowsのXAMPP Apacheで動かすために、VirtualHostでpublicをDocumentRootに指定する方法、.htaccessでpublicへ振り分ける方法、public_htmlへpublicの中身を配置してindex.phpの参照先を変更する方法を解説します。.envやstorageなどを公開しないための注意点、Viteのビルド成果物、ApacheとLaravelのログを使ったトラブルシューティングも整理します。
Laravel 13+Vue.jsで登録・編集フォームを非同期化する:fetchとaxiosを比較
2026.08.26
Laravel 13のBlade画面にVue.jsを組み込み、membersテーブルのnameとemailを登録・編集するフォームを作ります。Vue.jsからLaravelのWebルートへJSONを送信し、CSRFトークン、バリデーションエラー、送信中・通信失敗の状態を扱います。リクエスト送信にはfetchとaxiosを使う方法を比較し、追加パッケージの有無やエラー処理の違いを整理します。
Laravelの開発サーバーを同一LANのスマホから確認する方法
2026.08.24
Laravelの開発サーバーをPCのLAN内IPアドレスで起動し、同じWi-Fiに接続したスマートフォンから画面を確認する手順を説明します。開発PCのIPアドレス確認、php artisan serveの待受設定、npm run build後のCSS・JavaScript確認、Windows Defender FirewallやWi-Fiルーターによって接続できない場合の切り分けを扱います。
PHPのSAML認証でログインできないときの切り分け:Microsoft Entra IDとonelogin/php-samlを確認する
2026.08.23
PHPのonelogin/php-samlとMicrosoft Entra IDを組み合わせたSAML認証で、ログインできない原因を切り分ける方法を解説します。Microsoft Entra IDのエラー情報とSAML Chrome Panelで確認したSAMLRequest・SAMLResponseをもとに、Entity ID、ACS URL、Audience、Recipient、Destination、署名証明書、時刻条件、NameID・クレームなどを確認します。
Windows 11のLaravel 13でcomposer devにMailpitを追加し、キュー化したメールを確認する
2026.08.22
Windows 11のLaravel 13開発環境で、composer.jsonのdevスクリプトにMailpit、Laravel開発サーバー、キューワーカー、Viteを登録し、composer devからまとめて起動する方法を紹介します。データベースキューへ登録したテキストメールをMailpitで確認する流れに加え、php artisan devとの違い、MailpitのSMTP・Web UI設定、SQLiteファイルをGit管理から除外する方法、起動時の切り分けも説明します。
Laravel 13でBladeの新規登録フォームを作成する:バリデーション・CSRF・入力値の再表示
2026.08.21
Laravel 13のBladeで、既存のmembersテーブルへnameとemailを登録する新規登録フォームを作成します。$request->validate()による入力値の検証、@csrfによるCSRF対策、@errorによるエラー表示、old()による入力値の再表示、登録後のリダイレクトメッセージまでを確認します。