[PHP-dev 198] Re: PHP-4.2.0dev+mbregex patch

Rui Hirokawa php-dev@php.gr.jp
Wed, 9 Jan 2002 08:38:41 +0900


廣川です。

On Tue,  8 Jan 2002 10:14:21 +0900 (JST)
tsukada@fminn.nagano.nagano.jp wrote:

> こんにちは、塚田と申します。

こんにちは、塚田さんにこのMLで開発に関する議論に参加していただけるのは
大変心強いです。

> 
> 廣川さん:
> > 
> > 塚田さんが作成されているマルチバイト対応正規表現
> > 用拡張モジュールmbregexをもとにマルチバイト対応正規表現関数を
> > PHP-4.2.0dev(CVS開発版)のmbstringに組み込むパッチを作成してみました。
> > 
> > 動作及び仕様についてご意見いただければと思います。
> > 
> > 塚田さんのご了解が頂けましたら、本家CVSの方にコミットすることも考えたいと
> > 思います。 
> > いかがでしょうか?  > 塚田さん
> > 
> 
> mbstring とは別のモジュールにしないのでしょうか。
> PECLとやらでも良いと思います。
> 
> mbstring に組み込むならば、UTF-8に変換して PCRE
> を使うようなものを実装するのが合うと思います。
> 対応する文字コード、1文字の単位、正規表現の違い、など

例えば、mbregexのままコミットして、mbstringと別モジュールにする案も
ありますが、以前、別の開発者の方からmbstringに組み込んだ方が
自然ではないかと言われたことがあります。私の意見も同じです。
マルチバイト対応の正規表現関数は、基本的な機能という認識なので、
PECLよりもはやり本体のソースツリーに入ってもらう方がありがたいのでは
ないでしょうか。
mbregexと別モジュールで括り出すと今の情况ではPECLの方に入ることに
なりそうです。マルチバイト機能のユーザは、PHP4のソースコードに入っている
方がありがたいと思うのではないかと思います。

PCREのUTF-8対応機能を使う手は確かにあるかと思います。
PCREの場合、対応する文字コードがUTF-8のみなので、mbstringの
内部文字コードをUTF-8にして使うことになるでしょうが、それなりに
便利につかえるかと思います。

また、塚田さんがおっしゃったようにmbregexとmbstringは異なる
実装をベースにしており、文字表現、文字コード等の種類が異なっています。

別のモジュールに分けるという考えもあるのですが、私は、
mbstringはマルチバイト環境での基本関数を集めたもので、
PHPの基本関数を集めたext/standard/のマルチバイト版にあたるのでは
ないかと思っています。
standardの中には、文字列関数、正規表現、ファイル関数など、
かなりいろいろなものが混在しています。
同じモジュールとはいえ、マルチバイト系の基本関数を集めたものと考え、 
あえて、内部実装の統一性にこだわらないというのも一案でしょう。

また、既にかなり使われているmbregexは、POSIX regexのマルチバイト版
として今後も使用されていくでしょうし、PCREと二種類あっても良いのではと思います。
(シングルバイトでもregex,PCREの2種類あるわけですし。)

他のみなさんのお考えはいかがでしょうか?

> 
> 
> # ところで、PECLという略語は Posiitive Emitter Couple Logic
> # というのになじみがあるので、ちょっと違和感があるんですが、、、
> # だから、、、どうでもいいことですが。

PECLはPEARの前の名前でもあったと思いますが、正式な名前は
今何と言うのでしょうか?

-- 
-----------------------------------------------------
Rui Hirokawa <rui_hirokawa@ybb.ne.jp>
             <hirokawa@php.net>