-
現状のレスポンス処理を棚卸し
-
レスポンス送信・バッファ・チャンク処理がどこに点在しているかリストアップ
-
“response”系構造体・関数の有無、命名規則、責務の分散状況を確認
-
-
リクエスト処理と比較し「対称性の不足」「積み上げ処理の偏り」を特定
-
命名規則を統一
- プレフィックス(
php_cli_server_
等)や関数名に“response”を積極的に入れる
- プレフィックス(
-
責務を整理
- 「バッファ操作」「チャンク生成」「ヘッダー追加」等が“どの役割”としてあるか明確化
-
php_cli_server_response
構造体(またはResponseBuilder)を新設- ステータスコード・ヘッダー・ボディ・送信状態などをカプセル化
-
クライアントごとに「request/responseペア」を持たせる設計に近づける
-
ResponseBuilderパターンで積み上げ式APIを作る
-
例:
-
php_cli_server_response_set_status
-
php_cli_server_response_add_header
-
php_cli_server_response_append_body
-
php_cli_server_response_send
-
-
-
チャンク送信・バッファ操作も内部に吸収
-
複雑な低粒度関数群を、1つの「流れを示す関数」でラップ
-
例:
void php_cli_server_send_simple_response(client, status, type, body);
-
ユーザーや他モジュールからはこの関数を呼ぶだけでよい設計へ
-
-
ResponseBuilder層の上に「httpserver.h」型APIを重ねる
-
例:
-
http_server_init
-
http_server_listen
-
http_request_handler_t
型ハンドラー
-
-
ユーザーは
request
とresponse
オブジェクトで直感的に処理できる
-
-
段階的に既存API→新APIへリファクタ
-
まずは内部のみ、新APIを実装・テスト
-
互換層を残して徐々に置き換え
-
-
ドキュメントやコメント、テストコードも並行して充実
-
TLS・ストリーミング・WebSocket等への拡張性を見据えて
“レスポンス構造体”/“ストーリーテラー”/“高水準API”を保守 -
今後のPHP拡張やAI連携にも耐えうる粒度・命名・設計を意識
-
現状整理と命名・責務の統一
-
レスポンス構造体(またはBuilder)の導入
-
積み上げ式API(Builderパターン)でレスポンス生成・送信
-
「ストーリーテラー関数」で全体の流れを見える化
-
高水準API(httpserver.h型)でユーザー向けにシンプルな使い心地を提供
-
段階的な移行・テスト・ドキュメント整備を進める