「FrankenPHPでPHPが変わる?パフォーマンス改善の新潮流!」~【php】今週の人気記事TOP5(2025/07/27)
【2025/7/27】「FrankenPHPでPHPが変わる?パフォーマンス改善の新潮流!」今週の人気記事TOP5(2025/07/27)
PHPカンファレンス関西2025に登壇・参加しました
ma_me氏がPHPカンファレンス関西2025で「PHP実行環境パフォーマンス対決」と題し、mod_php、php-fpm、Swoole、FrankenPHPのパフォーマンス比較について発表。FrankenPHPに興味を持ち、今後深掘りしていく予定。
カンファレンスでは、ソフトウェアデザイン、PlaywrightとPHPUnitの連携、階層化テスト、コードゴルフ、デシジョンテーブル、MySQL9のベクトルカラム、設計、学習地図、構文解析、PHPStan、開発ツール、PHPアップデート、Result型、翻訳、テスターとプログラマーの可能性など多岐にわたる講演から刺激を受け、今後の開発に活かしたいと述べている。
PHPDocの@inheritDocと{@inheritDoc}の違いについて
PHPDocの@inheritDoc
と{@inheritDoc}
は、親クラスのドキュメントを継承する際に使用しますが、違いがあります。@inheritDoc
は、PHPDoc全体を親クラスから継承し、変更を加えない場合に用います。一方、{@inheritDoc}
は、親クラスのドキュメントを継承しつつ、説明を追記・修正する場合に使用します。どちらかに統一して書く方が良いとのことです。
PHP-CS-Fixerにfix --dry-runにcheckっていうショートカットがあった
PHP-CS-Fixerでコードスタイルのチェックにfix --dry-run
の代わりにcheck
コマンドが利用可能。v3.34.0で追加された機能で、内部的にはFixCommand
を継承しているため、fix
コマンドと同じオプションや引数が使用可能。コードの修正有無を確認する際、より簡潔にcheck
コマンドが使える。ドキュメント確認の重要性を示唆。
連載: FrankenPHP導入検討 - PHP実行環境の歴史
プログリットはPHP(Laravel)をメインに開発しており、顧客増加に伴うパフォーマンス問題の解決のため、FrankenPHPの導入を検討しています。
記事ではPHP実行環境の歴史を振り返り、CGIからFastCGI、PHP-FPM、Laravel Octaneへと進化してきた背景を解説。FrankenPHPはWebサーバー機能を内蔵し、PHP-FPMが不要な統合環境であり、プロセス常駐による高速化が期待できます。2025年5月にPHP Foundationが公式サポートを発表しており、今後の主流になると予想されています。次回はFrankenPHPの特徴、メリット、懸念点を調査します。
Laravel + React Router v7でCSRFをどこで対策するか
この記事は、CSRF(クロスサイトリクエストフォージェリ)攻撃の概要と、LaravelとReact Router v7を用いたSPA構成での対策について解説しています。過去の事例からCSRF攻撃の危険性を示し、React Router v7ではSameSite=Lax
属性によるCookie制御で基本的なCSRF対策が可能であると説明。LaravelをAPIサーバーとして使用する場合、CSRF対策をReact Router側に寄せることで実装が簡素化できるとしています。
【2025/7/20】「Result型とMySQL9、PHP開発に変化の兆し?」今週の人気記事TOP5(2025/07/20)
PHPで関数型プログラミング!Result型を使ってクリーンで予測可能なコードへ
PHPで関数型プログラミングを実践するアプローチとして、Result型を導入する記事です。
純粋関数のメリット(関心の分離、テスト容易性)を活かすため、副作用を伴う処理をResult型(Ok/Err)でラップし、エラーハンドリングを明示的にします。
DBアクセスや外部API連携などの非純粋関数をResult型で包み、成功/失敗を表現。
フロントエンドへのデータ整形処理を純粋関数として分離し、可読性と安全性を向上させました。
Result型は標準ではないため、チームでの理解が重要です。
PHPカンファレンス関西2025登壇しました!『MySQL9でベクトルカラム登場!PHP×AWSでのAI/類似検索はこう変わる』
TechTrainのエンジニア、スー氏がPHPカンファレンス関西2025で「MySQL9のベクトルカラムとPHP×AWSでのAI/類似検索」について発表。MySQL9のベクトルカラム概要、PostgreSQLとの比較、ベクトル検索の構成要素、実装例を解説。背景にはMySQL9のリリースとAI分野でのベクトル利用増加がある。時間の都合で実装の詳細に触れられなかった点を反省。コミュニティのランチセッションにも参加し、運営に関する意見交換を行った。カンファレンス全体を通して、コミュニティへの貢献意欲を新たにした。
「Xdebug: [Step Debug] Could not connect to ... 」が出た時のメモ
Xdebug 2から3へのアップグレード後、「Could not connect to debugging client」エラーが発生する問題に対する解決策です。
原因は、xdebug.start_with_request=yes
設定により、IDEでデバッガーが起動していない場合にXdebugが常に接続を試み、失敗することです。
解決策として、xdebug.start_with_request=trigger
を設定し、XDEBUG_TRIGGER
環境変数を設定して明示的にデバッガーを起動する方法や、xdebug.log_level=0
でエラーログ出力を抑制する方法が紹介されています。根本的な解決にはトリガー方式が推奨されています。
【DAY39】過去に初めてだったのに高度な作業を押し付けられ破綻した件
駆け出しエンジニアがLaravelでフォーム項目追加タスクで破綻した経験の振り返り。原因は、影響範囲の洗い出し不足、データフローの未把握、テスト更新の軽視。対策として、事前に影響範囲をリスト化、データフロー図作成、テスト更新の徹底を提唱。MVCを理解せずに安易な実装を行うと設計が崩壊する。小規模な変更でもブランチを分け、ステージング環境での実地確認を推奨。
【DAY38】Laravelに直接保存ロジックを書くと設計が破綻しやすい理由
Laravelで、コントローラーやモデルに直接保存ロジックを書くと、アプリケーションロジックが肥大化し、単一責任の原則が崩れて設計が破綻しやすい。サービス層(Serviceクラス)を導入し、コントローラーはリクエスト処理とサービス呼び出しに、モデルはDB操作に専念させることで、責務を分離する。これにより、ユニットテストが容易になり、保守性・可読性が向上、将来的な仕様変更にも対応しやすくなる。スモールスタートでもサービス層を使う癖をつけることが重要。
【2025/7/13】「PHP開発、型安全はもう必須?NativePHPも気になる?」今週の人気記事TOP5(2025/07/13)
PHP カンファレンス 2025 に登壇しました
PHPカンファレンス2025にNativePHPをテーマに登壇。プロポーザル採択後、NativePHPの魅力を伝えるため業務改善アプリとスライド表示アプリを開発。特にスライド表示アプリは、発表の進捗状況を通知する機能などを実装し、好評を得た。社内リハーサルを経て、本番では最大規模のトラックで発表。時間配分に課題が残ったものの、参加者との交流を通して貴重な学びを得た。
型定義書くの面倒?Laravel Data + TypeScript Transformerがあるよ!
Laravel + Inertia.js開発で、バックエンドの型定義をフロントエンドで手動で行う手間を、Laravel DataとTypeScript Transformerで解決する手法を紹介。
Laravel Dataでデータ構造を定義し、php artisan typescript:transform
を実行するだけで、PHPからTypeScriptの型定義を自動生成。
これにより、any型に頼らず型安全性を確保し、コンパイル時のエラー検出、IDEの補完機能、バックエンド変更の自動検出といった効果により、開発速度と品質が向上する。
循環参照への対策や、複雑な型変換の制限などの注意点も解説。
WordPress 公式テーマの制作(ブロックテーマ編)
この記事は、WordPressの公式ブロックテーマ制作について解説しています。
重要な点として、
- テーマ名: 他のテーマと重複しないように命名する。
-
基本構造:
templates/index.html
が従来のindex.php
の役割を担う。 -
テンプレート:
header.html
やfooter.html
はパーツとして読み込まれ、patterns
による再利用とPHPの組み込みが推奨される。 - theme.json: グローバルなスタイル設定を行う。
- 翻訳: テーマ内の文字列は翻訳可能にする。
- Theme Check: プラグインでテーマのチェックを行い、警告を修正する。
PHP Conference Japan 2025登壇レポート: Result型で失敗を型にするPHPコードの書き方
PHP Conference Japan 2025での登壇報告。Result型(Either型)を用いてPHPでエラーハンドリングを改善する方法を解説。Result型は処理の成功・失敗を型として明示的に表現し、Rust等で広く採用。PHPでの実装例や、PHPStanのジェネリクスによる型安全性の向上策を紹介。重要な点として、エラーをドメインモデルの一部として捉え、「ビジネス上の失敗」を型として表現することで、ドメインエキスパートと開発者の共通言語を醸成する点を強調。
Claude Code を実務に投入してみた事例レポート
Claude Codeを実務投入した事例。課題を受けMarkdownで整理、Claude Codeに仕様書作成を指示。ソースコードとテーブル定義から主要チェックポイントを網羅した仕様書が数分で生成されたが、要件の抜けや過剰な記述があり修正。実装、試験仕様書、ユニットテストコードも生成したが、品質に課題が残ったためレビュー・修正が不可欠だった。ドキュメント作成速度は向上したが、レビュー時間は変わらず。AIへのレビュー結果通知や、Excel資料の読み込みが課題。詳細設計になるほどAIの誤りが増える傾向が見られた。
Discussion