[PHP-users 265] Re: PHP4.0.6 Released!

Rui Hirokawa php-users@php.gr.jp
Mon, 25 Jun 2001 04:37:53 -0500


廣川@ハンツビル出張中です。

既に報告されていますが、
PHP 4.0.6へ日本語対応モジュールがマージされました。
塚田さんをはじめ関係各位に感謝いたします。

PHPマニュアルの方も作業中ですので、もうすぐWebで日本語版も見れるようにな
るはずです。

なお、PHP 4.0.6の日本語対応機能について、
Web+DB Press vol.3 に簡単な使い方を紹介記事を書いておきましたので
本屋で立ち読みでもしてみてください。

KANAI> Akihiro Sagawaさんの<20010623201155.7946.SAGAWA@sohgoh.net>から
KANAI> >4.0.6の大きな変更点としては、
KANAI> >日本語用のマルチバイト処理関数が追加されたことでしょう。
KANAI> 
KANAI>  PHP4.0.6のext配下のソースをざっと見たかぎりでは、jstringのときのマ
KANAI> ニュアルにあった(推奨の?)書き方 jstr_internal_encoding などの jstr_ 部
KANAI> 分を、全部 mb_ に書き換えないといけないみたいですね。
KANAI> 
KANAI>  今までのソースの救済(プログラムを変更しないでいい)は mbstring.c の
KANAI> function_entry mbstring_functions[] に
KANAI> PHP_FALIAS(i18n_internal_encoding,      mb_internal_encoding,   NULL)
KANAI>  などと同列で、
KANAI> PHP_FALIAS(jstr_internal_encoding,      mb_internal_encoding,   NULL)
KANAI> と書けばいいみたいですが……(jstring 1.1のときのjstring.cを参考にして
KANAI> います)
KANAI> 
KANAI> できれば、デフォルトで救済されるのはいいと思います。(個人的には
KANAI> jstr_*で業務用にたくさん書いたので、いまさらシステムを長時間とめて
KANAI> 書き直すことは無理という事情があります)


jstringからの移行に際して関数名の互換性を取るほうが望ましいという
指摘はごもっともです。(私もそう思っていました。)

実は、塚田さんのjstringのコードをベースにPHP4.0.6へのマージを行なった際、
最初はjstringの関数名をそのまま使う予定でした。

しかし、他の複数の開発者から jstr* という名前がJavaを連想させ紛らわしい
との指摘があり、mbstr* に変更した経緯があります。

PHP3で使っていたi18n_ 系のエイリアスについては互換性のため残してあります
が、jstringの関数へのエイリアスをPHP4のソースに含めることは上記の理由に
より受け入れ難いと思います。

現時点では、jstringに関しては以下の方法をとるのが良いと思います。

1. 簡単な置換フィルタを書いて現状のソースコードを変換する。

2.(金井さんがかかれているように)
  mbstring.cの関数定義でjstringの関数にエイリアスを張る。
 これはPHP_FE() で簡単に可能です。

現状では2の方が楽ですが、将来性を考えると1の方かなとも思います。

-- 
Rui Hirokawa <louis@cityfujisawa.ne.jp>
                  <hirokawa@php.net>