- 命名規則の揺れ・プリフィックス統一の徹底
-
normalize_vpath
,append_http_status_line
,add_response_header
など、
php_cli_server_
プレフィックス抜けの関数をリネーミング・名寄せ -
責務が曖昧/継ぎ目部分の関数は、役割明確化のうえで命名・ファイル整理
-
新APIや構造体導入のタイミングで**「レスポンス系」命名も積極導入**
- “グラデーション”部分の責務調査・明確化
-
cli_header_value_dtor
、get_last_error
、status_comp
など
責務の分かりづらい関数群の役割・呼び出し元を調査・明文化 -
「グラデーション」箇所のドキュメント化とリファクタ計画への明示
- HTTPリクエスト/レスポンスの対称性の再設計 & ResponseBuilder導入
-
request/responseの「対称設計」を徹底
-
php_cli_server_response
構造体、もしくはResponseBuilder
を新設 -
レスポンス生成・管理を「積み上げ型(Builderパターン)」で再設計
-
チャンク・バッファ操作や送信処理もresponseオブジェクト経由に移行
-
-
「積み上げ型API」で、レスポンス状態・ヘッダー・ボディ・送信進捗を一元管理
- 関数の粒度と「ストーリーテラー関数」の導入
-
低粒度API(append系、チャンク・バッファ管理等)群をラップする
「ストーリーテラー関数(高水準な流れ関数)」を設計・追加- 例:
php_cli_server_send_simple_response
,php_cli_server_handle_file_response
- 例:
-
ユーザーや他モジュールが「全体の流れ」を簡単に把握できるAPIに整理
-
ドキュメント・コメントでも「典型的な処理シナリオ」を明示
- 名前空間(プリフィックス)の分裂部位の整理
-
php_cli_server_
(サーバ本体)とsapi_cli_server_
(SAPI連携)の責務を明文化- ファイル・モジュールごとにどちらの層か明確化
-
グラデーション部はbridge.c, interface.c等の「中間層ファイル」で吸収/暫定管理
- 「分類不能」や違和感ある関数の設計・整理候補化
-
分類しきれない関数名・処理は「リネーム/役割分割/廃止」候補リストへ
-
設計改善Todoリストを随時アップデート
- イベントループ/IO層の独立・抽象化
-
ポーリング・FD管理・イベントループ系は別ファイルへ分離・抽象化
-
将来のlibuv/TLS/async対応にも備えた「差し替えポイント」設計
- API粒度・命名・責務レベルの設計ドキュメント化
-
コードリファクタと並行して「役割と責務のミニマップ」や「APIサンプル」を用意
-
OSSや後継者向けに設計意図や典型ユースケースもドキュメント化
- 高水準API(httpserver.h型)への発展
-
ResponseBuilder方式+ストーリーテラー関数を足場に、
httpserver.h型(ユーザー向け超高水準API)も検討 -
例:
http_server_init
,http_server_listen
,
ハンドラー関数でリクエスト/レスポンスを直接操作できる構成
-
命名揺れ・分類不能関数の呼び出し元洗い出し
-
レスポンス側カプセル化不足の流れ調査・設計見直し
-
ストーリーテラー関数の既存有無をサーチ
-
「積み上げ型API」適用範囲の分析・段階的移行計画の立案
-
命名・責務分担の徹底統一/名寄せ
-
グラデーション・継ぎ目部の調査・可視化
-
request/responseペアAPIの本格導入、response側のBuilderパターン適用
-
ストーリーテラー関数の追加・高水準API層の整備
-
プリフィックス/ファイル配置/中間層設計の明確化
-
分類不能/違和感関数のリスト化・優先的改善
-
IO・イベントループ層の独立・差し替え設計
-
設計ドキュメント・APIサンプル・典型ユースケースのドキュメント化
-
超高水準API(httpserver.h型)への発展余地を常に意識