[PHP-dev 280] Re: PHP国際化の方針 (Re: strlen() ドウする問題 )

Yasuo Ohgaki php-dev@php.gr.jp
Thu, 04 Apr 2002 16:59:02 +0900


大垣です。

本家php-devでどのような意見があったのか、どのような反対が予想
されるかメールします。

TAKAHASHI Masayoshi wrote:
>  * サポートするcodeset/encodingはどこまでか。そもそも明示する
>    のか。明示しない場合、どのような条件をつけるのか。

php-dev@lists.php.netでは特に議論されていません。
去年、型がstringの場合、encodingを保持するフィールドを
zend_valueにつけては、と言う案がWezさんからでた事があるくらい
です。UTF16, UCS-2はどう?と言うメールもありました。結論はあり
ません。

個人的には、面白そうとは思いましたが、いろいろなエンコーティング
が存在すると面倒な事も多いので内部エンコーディングは固定にしてしま
う方が良いと思います。またすべてのエンコーディングがサポートできる
様になっていなくても良いと思います。(BIG5、ISO-2022など)

# PHP_INI_SYSTEMで変更できるようにする。configure時に指定
# する方法があります。PHP_INI_SYSTEMで変更できる方が明らかに
# 便利ですが、私はどちらでも良いと思います。
# configure時に設定してしまうと、distoributionを作る方が
# 困りそうですが、、、

> 
>  * 異なるencoding同士のソースをinclude/requireできるのか。

php-dev@lists.php.netでは特に議論されていません。

藤本さんが指摘された通り、自動認識には問題があるので実装しなくて
も良いと思います。

エンコーディングをソース毎に指定するtrack_varsのような特別な
仕様を作る事も反対されると思います。

# 古いPHPはtrack_varsはデフォルトOffなのでtrack var
# を有効する為のディレティブをソース中に埋め込めました。

> 
>  * 関数名や変数名に非ASCII文字は使えるのか。
> 
>  * リテラルに直接非ASCII文字は使えるのか。その場合、
>    encodingの指定はどこで行うのか。

php-dev@lists.php.netでは特に議論されていません。

非ASCII文字をサポートする事により、少しでも遅くなるようであれば反対
されると思います。

>  * どこまで後方互換性を持たせるのか。strlenなどの挙動の互換性は
>    必要なのか、不要なのか。

strlen()のデフォルト動作を変更するのは確実に猛反対されると思
います。

個人的には、あさかわさんのstrlen()は変更せず、byte_len()と
string_len()を追加する方法に+1です。

# byte_len()はPHP4.3.0から追加できますが、文字列型以外
# の場合はどうるするか?が問題になります。
# 個人的には、PHPスクリプトからlongやdoubleのバイト数を
# 取得しても意味がないので、文字列型に変換後、バイト数を返す
# が良いと思います。どうでしょうか?

PHPはWeb(ハイパーテキスト)用の言語なのでXML(XHTML)のデ
フォルトに合わせてISO-10646にする、と簡単な話しで済まない
のが困ります。Windows, Javaはどうしているのでしょう?

php-devにFRCを投稿し問題なく実装に移るには、誰からも強く反
対されないような形で提案する事が重要と思います。
# FRC時にはほとんど反応無し、commit後に議論になる
# と言う事も時々ありますが、、

PHP5はPHP4と互換性が無いのですが、互換性を損なうような変更
も確実に反対されます。
ini設定で選択できるようにする事により、スクリプトの互換性が
設定に左右されるようなiniディレクティブの追加も確実に反対さ
れます。(i.e. register_globalsのような設定)
最後にパフォーマンスに関してはかなりピッキーなので遅くなるよ
うな変更(遅くなると思えるような変更)は必ず反対されます。

# 仮に極少ないパフォーマンスロスにより不具合が修正可能
# でも、その不具合があまり問題としてレポートされていな
# いと変更されない場合があるくらいです、、、
# いい加減でも早ければOKということも、、、

また、AndiはできればPHP5を2Qにベータ、3Qでリリースできれば
と考えているようです。初期のPHP5でのi18n化は限定的な物に留め、
今後の拡張可能な仕様を今考えて、必要な物は入れ物だけ作っておく
方が現実的と思います。

--
Yasuo Ohgaki


__________________________________________________
Do You Yahoo!?
Yahoo! BB is Broadband by Yahoo!  http://bb.yahoo.co.jp/