- 調査対象リスト(一次まとめ)
関数名 | 現状カテゴリ |
---|---|
normalize_vpath | プレフィックス抜け |
append_http_status_line | プレフィックス抜け |
add_response_header | プレフィックス抜け |
cli_header_value_dtor | 責務が曖昧 |
get_last_error | 責務が曖昧 |
status_comp | 責務が曖昧 |
destroy_request_info | 責務が曖昧・空実装 |
cli_concat_persistent_zstr_with_char | 責務が曖昧・冗長名 |
- 各関数の詳細整理
-
役割: 仮想パス正規化(/統一、.や..除去、デコード)
-
呼び出し元:
php_cli_server_client_read_request_on_path
-
課題: static + プレフィックス抜け
-
改善案:
php_cli_server_normalize_vpath
にリネーム(責務・モジュール明確化)
-
役割: HTTPレスポンスのステータスライン生成
-
呼び出し元:
sapi_cli_server_send_headers
,php_cli_server_send_error_page
,php_cli_server_begin_send_static
-
課題: static + プレフィックス抜け
-
改善案:
php_cli_server_append_http_status_line
にリネーム
-
役割: ヘッダー1件をkey/value分解しPHP配列に格納
-
呼び出し元:
PHP_FUNCTION(apache_response_headers)
-
課題: static + プレフィックス抜け
-
改善案:
php_cli_server_add_response_header
もしくはSAPI共通用途ならphp_sapi_add_response_header
に
-
役割:
php_cli_server_request->headers
の値(zval)解放 -
呼び出し元:
php_cli_server_request_ctor
(HashTable初期化時のデストラクタ登録) -
課題: cli_ だけでは文脈不明、プレフィックス一貫性なし
-
改善案:
php_cli_server_header_value_dtor
さらに限定するならphp_cli_server_request_header_value_dtor
-
役割: errno→文字列(strerror)変換+ヒープ複製
-
呼び出し元:
php_cli_server_content_sender_pull
,php_cli_server_send_error_page
-
課題: static汎用名、責務/用途が不明確
-
改善案:
php_cli_server_get_last_error
さらに明示したければphp_cli_server_last_os_error_string
-
役割: HTTPステータスコード(int)比較(bsearch用)
-
呼び出し元:
get_status_string
-
課題: staticユーティリティ名で意味が広い
-
改善案:
php_cli_server_status_code_pair_comp
あるいはphp_cli_server_http_status_code_comp
-
役割: 現状空実装(歴史的経緯?)
-
呼び出し元:
php_cli_server_request_shutdown
,php_cli_server_dispatch
-
課題: 名称だけで実体が無い、TODOコメントあり
-
改善案:
本当に不要なら削除。
インターフェース都合で残すなら「NOPである旨」をコメントで明記+php_cli_server_
プレフィックスに
-
役割: persistentなzend_stringバッファの安全な拡張
-
呼び出し元: HTTPパース関連関数(URL, ヘッダー名, ヘッダー値の連結)
-
課題: cli_のみでモジュール特定しづらい、冗長な命名
-
改善案:
php_cli_server_zstr_persistent_append
またはphp_cli_server_append_to_persistent_zstr
- 改善方針まとめ
-
php_cli_server_
で一貫 -
SAPI共通・将来拡張なら
php_sapi_
プレフィックスも検討
- データ型や構造体、目的を名前に反映(header, request, error など)
-
歴史的な名残・インターフェース用の空関数は本当に不要なら削除
-
残すなら「NOP」「将来用途」などコメントで明記
役割例 | 命名例 |
---|---|
正規化 | php_cli_server_normalize_vpath |
ヘッダー追加 | php_cli_server_add_response_header |
値解放デストラクタ | php_cli_server_header_value_dtor |
ステータス比較 | php_cli_server_status_code_pair_comp |
- 推奨次ステップ
-
各関数のリネーム・コメント整理(PRの準備)
-
設計意図・命名ルールをドキュメント化
(例:CONTRIBUTING.md や internal_api.md など) -
将来的なAPI/内部構造整理のたたき台として本リストを随時アップデート
- 今回の整理結果の活用例
-
リファクタ設計レビュー資料
-
チーム向け命名ガイドライン案
-
APIドキュメントやOSS提案時のエビデンス