Windows版PHPのTS・NTSはどちらを選ぶ? Apacheの接続方式と確認方法
2026.10.30
Windows版PHPのThread Safe(TS)とNon Thread Safe(NTS)の違いと選び方を解説します。Apacheモジュール方式とFastCGI方式の違い、XAMPPの設定の読み方、CLIとWeb側で使われるPHP・php.iniの確認方法、DLLを選ぶ際の注意点を紹介します。
CodeIgniter 3のPHP更新に備える:8.1・8.3で主要機能の回帰テストを作る
2026.10.29
CodeIgniter 3のシステムをPHP 8.1から8.3へ更新する際の確認方法を解説します。ログイン・セッション・DB更新を7ケースの回帰テストで比較し、HTTP応答・保存結果・警告ログから不具合を切り分ける手順を紹介します。
PhpSpreadsheetで先頭ゼロを保持する方法:文字列型とゼロ埋め表示の違い
2026.10.26
PhpSpreadsheetで商品コードなどの先頭ゼロを保持する方法を解説します。文字列型での保存と、数値の表示形式によるゼロ埋めを比較し、XLSXの再読み込みで値・型・表示の違いを確認します。長い番号や「=」で始まる文字列を出力する際の注意点も紹介します。
【2026年10月24日時点】PHP2Shell対策:レンタルサーバー利用者が確認したい5つのこと
2026.10.24
PHP2Shellへの対応で、自社サイトの何を確認すればよいか迷うWeb担当者向けに、確認する順序を解説します。さくら・エックスサーバー・ロリポップ!の公式案内をもとに、利用者に必要な作業の判断、サイトの点検、問い合わせ文、古いPHPの更新を計画する際の注意点をまとめました。
PHPで外部APIのフォールバックとキャッシュを実装する:該当なしと通信失敗を分けて扱う
2026.10.23
外部APIの「該当なし」と通信失敗を区別し、代替APIへ切り替える条件と取得結果のキャッシュをPHPで実装します。架空の商品情報APIを使い、問い合わせ回数・待ち時間の制限、キャッシュの有効期限・無効化、モックによる動作確認を解説します。
Laravelのコードレビューで遅いSQLの候補を洗い出す
2026.10.02
Laravelのコードレビューで、ループ内のDBアクセスやEloquentのN+1、大量取得、検索条件とインデックスなど、性能問題につながりやすい箇所を候補として洗い出します。Laravelで発行SQLと実行時間を確認し、MySQLのEXPLAINや実データに近い環境での計測へつなげる方法を紹介します。コードレビューだけではSQLの実行時間を断定できない点も説明します。
Windows 11でDocker Composeを使ってLaravel環境を作る:Container・Volume・Networkの基本
2026.10.01
Windows 11のDocker Desktop上に、DockerfileとDocker Composeを使ってLaravel・PHP・MySQL・Mailpitの開発環境を構築します。ImageとContainerの関係、Bind MountとNamed Volumeによるデータの保存、ポート公開とContainer間通信の違いを実例で確認。LaravelからMySQLへ接続するときに、localhostではなくService名を使う理由も説明します。
PHPでYAML設定を検証する:symfony/yamlとopis/json-schemaの使い方
2026.09.30
symfony/yamlでYAMLを読み込み、opis/json-schemaで必須項目や型、許可する値を検証する方法を紹介します。YAMLのマップをstdClassとして扱う方法や、空のobjectとarrayの違い、信頼できないYAMLを扱う際の注意点も解説します。
PHPの正規表現で日本語・改行を扱う:u・m・s修飾子の違い
2026.09.29
PHPの正規表現で日本語や複数行テキストを扱う際の、u・m・s修飾子の違いを解説します。Unicode文字クラスと全角数字、CRLFの行末処理、\A・\zの使い方、Unicode正規化との違いを、PHP 8.3.15・PCRE2 10.42で確認したコード例とともに紹介します。
mPDFで日本語PDFを生成する:フォント登録・改ページ・レイアウト崩れの確認ポイント
2026.09.23
PHPからmPDFで日本語を含むPDFや帳票を生成する際に、Noto Sans JPなどのフォントをプロジェクト側で登録する方法、fontDir・fontdata・tempDirの設定、HTML/CSSの制約、改ページや長い文字列の扱いを解説します。Linuxや本番環境で起きる文字化け・レイアウト崩れを、PHP拡張、フォント、権限、入力HTMLの観点から切り分ける手順も紹介します。
LaravelのArtisanコマンドを本番運用する:冪等性・二重実行防止・再実行の設計
2026.09.22
LaravelのArtisanコマンドでデータベースを更新する処理を、本番環境で安全に運用するための考え方を整理します。商品在庫の一括更新を例に、冪等性、dry-run、チャンク処理、トランザクション、二重実行防止、失敗後の再実行、ログや終了コード、実行前後の確認手順を紹介します。
PHPでDMARC集計レポート(XML)を解析する:SimpleXMLでSPF・DKIMの結果を配列化
2026.09.21
Googleなどのメール受信サービスから届くDMARC集計レポート(XML)をPHPのSimpleXMLで読み込み、report_metadata、policy_published、複数のrecordから送信元IP、件数、disposition、SPF・DKIMの結果を配列へ変換する方法を解説します。欠損項目やXML解析エラー、名前空間、UNIXタイムスタンプの日時変換も扱い、後続の画面表示や保存処理へ渡せる構造を作ります。
PHPのcURLで外部API連携を実装する:HTTPメソッド・認証・エラー処理を共通化
2026.09.20
PHPのcURL拡張を使い、GET・POST・PUT・PATCH・DELETEのHTTPリクエストを送信する方法を解説します。APIキーやBearerトークンの扱い、タイムアウト、通信エラーとHTTPエラーの分離、JSONレスポンスの解析までを共通関数にまとめます。
Laravel 13のNamed Rate Limiterでレート制限を実装する:IP・ユーザー・入力値ごとの設定
2026.09.19
LaravelのNamed Rate Limiterを使い、無制限に繰り返されたくない処理へレート制限を追加する方法を解説します。RateLimiter::for()とthrottleミドルウェアの基本から、IPアドレス・ユーザーID・入力値による制限、複数の制限、429レスポンス、ログイン処理への応用、Redis利用時の注意点まで整理します。
Laravel SocialiteでGoogleログインを実装する|OAuth設定から初回登録まで
2026.09.18
Laravel Socialiteを使ったGoogleログインを、OAuthクライアントの設定からコールバック、Laravelユーザーの登録・ログインまで解説します。Googleアカウントは変更されるメールアドレスではなくsubで識別し、初回登録時は検証済みメールアドレスを確認します。既存アカウントへ自動連携しない設計や、セッション管理、Socialite Fakeで確認するテスト項目も紹介します。
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での定期実行についても紹介します。