【PHP】型宣言とNull許容型の書き方|strict_typesと実務での落とし穴
PHP の関数やメソッドに型を付けると、想定外の値を実行時に検出しやすくなります。一方でデフォルトではスカラー型が暗黙変換され、declare(strict_types=1) の有無で同じ呼び出しでも結果が変わります。本記事では型宣言 ...
【PHP】Enumの使い方|PHP 8.1の新機能とLaravelでの実践的な活用法
PHP 8.1 で導入された enum(列挙型)は、有限の選択肢を型として表現するための仕組みです。本記事では enum の基本から Laravel でのキャスト・バリデーションまでを整理します。コード例は PHP 8.1 以降、La ...
【Laravel】Form Requestによるバリデーション設計|authorize・rules・カスタムエラーメッセージ
Laravel のコントローラに $request->validate() を直接書くと、ルールが増えるほどメソッドが長くなります。権限チェックと入力検証も混ざりやすくなります。Form Request は、認可(authori ...
【PHP】match式とswitch文の違いと使い分け|PHP 8.0の新機能を実務レベルで理解する
PHP 8.0 で導入された match 式は、値の一致に応じて結果を返す構文です。本記事では match 式と従来の switch 文の違い、実務での使い分け、注意点を整理します。コード例は PHP 8.0 以降を前提とします。詳細 ...
【PHP】Fiberの使い方|非同期処理・コルーチンの基本を実例で理解する
PHP 8.1 で導入された Fiber(ファイバー)は、非同期処理の話題でよく名前が挙がります。本記事では Fiber の基本 API、Generator との違い、複数 Fiber を束ねる最小のスケジューラ例、そしてはまりどころ ...
【PHP】例外処理(try-catch-finally)の使い方|カスタム例外クラスの作り方も解説
PHP でプログラムを書いていると、ファイル読み込みや外部 API 呼び出しなど「失敗する可能性のある処理」を扱う場面が必ずあります。こうした処理を安全に扱うための仕組みが例外(Exception)であり、try・catch・fina ...
【Laravel】.envファイルの設定と管理のベストプラクティス|config()・env()の使い分けと注意点
Laravelを使い始めると、.env ファイルと config() 関数の使い分けに迷うことがあります。
「どこで env() を使って、どこで config() を使えばいいのか」「config:cache を ...
【Laravel】N+1問題の検出と解消方法|with・load・lazy loadingの使い分け
Laravelでアプリケーションを開発していると、気づかないうちに大量のSQLが発行されてパフォーマンスが劣化することがあります。その原因の多くが N+1問題 です。
ページの表示が遅い、DBへの負荷が高い、といっ ...
【PHP】配列操作の完全ガイド|array_map・array_filter・array_reduce・usortの使い分け
PHPには配列を操作するための関数が豊富に用意されていますが、「どれをどう使い分ければいいのか」迷ったことはありませんか。
array_map と array_filter の違い、array_reduce の使い ...
【Laravel】バリデーションのカスタムルールを作成する方法|Rule::make・Invokable・FormRequest
Laravelの標準バリデーションルールは非常に充実していますが、業務ロジックに踏み込んだ検証は自前で実装する必要があります。
たとえば「特定のステータスのときだけ必須になる項目」「DBを参照して重複チェックをカス ...