[PHP-dev 1337] Re: [PHP-doc 649] mbstring の新関数のマニュアルについて

Rui Hirokawa rui_hirokawa @ ybb.ne.jp
2006年 9月 24日 (日) 08:17:29 JST


廣川です。

TAKAGI Masahiro wrote:
> 高木です。
> 
> At Sun, 17 Sep 2006 14:33:01 -0900,
> Rui Hirokawa wrote:
>>> すると、mb_list_encodings()のパラメータで
>>> 実態のみ、エイリアスのみ。実態+エイリアスを、選択する様に
>>> もちろん、現行のmb_list_encodings(void)と同じく、無指定 
>>> は、全部返すというのがいいとおもう。
>> 私もこの仕様がわかりやすくて良いと思います。
>>
>> ただ,すでにPHP 5.2.0はRC4でリリース直前のため,
>>
>> 1.PHP 5.2.0のリリース時においては,
>>  mb_list_encodings()の引数と,
>>  mb_list_encodings_alias_names()
>>  の説明を,ドキュメントから削除する。
>>
>> 2.PHP 5.2.1以降で,
>>  mb_list_encodings([string encoding[,int type]])
>>  などとして,再度,実装を見直した上で,
>>  ドキュメント化する。
>>
>> のが良いと思います。
>>
> さきほど php-doc に流したとおり、ひとまず mb_list_* 以外の関数について
> のマニュアルを更新させていただきました。
>  http://ns1.php.gr.jp/pipermail/php-doc/2006-September/000766.html
> 
> もし変なところがあったらどんどん突っ込んでやってください。よろしくお願
> いいたします。
> 

ありがとうございます。

mb_list_*関数に関する議論が行われておりますので,私の現時点でのコメントを
まとめて書きます。
まず,mb_list_encoding()のオリジナルの仕様でなぜエイリアスやMIMEエンコー
ディングがサポートされていないのかについては,私には正直わかりません。

私がこの関数を書いたのであれば,単純に気が付かなかった(何も考えていな
かった (^_-) )んだと思いますが,CVSのログによると,この関数はDerickによ
り2004年に書かれたものだと思います。

--
Revision 1.211
Mon Mar 8 22:18:03 2004 UTC by derick
Branch: MAIN

- Added mb_list_encoding() to return an array with all mbstring
supported encodings.
--

オリジナル著者の考え方を尊重するという発言がありましたので,
とりあえず,Derick氏(とCC:でinternals @ lists.php.net)に(例によってへたくそな
英語で)どう思うか聞いてみました。

[PHP-DEV] RFC: about mb_list_encoding() /mb_list_encodings_alias_names(
), mb_list_mime_names( )

Derickもしくは他の開発者から何らかのコメントが得られると思います。
ただし,Derickは10/2まで留守という自動返信がきましたので,PHP 5.2.0のリ
リースには間に合わないかと思います。


私は,mb_list_encodings_alias_names(), mb_list_mime_names()がサポートす
る機能(エイリアスとMIMEエンコーディングのリストを取得)は有用だと思います
が,別の関数にするべきか,mb_list_encoding()のオプションにすべきかについ
ては,(個人的な好みは別にして)どちらもありだと思いますし,明確な優劣が
ないので正直判断がつきません。
(なお,仕様に明確な優劣がない場合は,実装上の都合(=実装がある,バグを生
みにくい,など)が優先されることになると思います。)

mbstring自体,もはや日本の開発者のみがかかわっているわけではなく,
今回のようにDerickのようなコアな開発者も関わっているので,そちらの
意見を参考に,仕様を決めていくのが良いと思います。

というわけで,最初のメールに書いたように,PHP 5.2.0のリリース時
においては,この関数をPHPマニュアルに記載しない,もしくは,
仕様に関する意見集約ができるまでの間については
「この関数は現在仕様を議論中であるのでテスト目的以外で使用しないように」
という趣旨の注をPHPマニュアルに記載するのが良いと思います。











PHP-dev メーリングリストの案内