[PHP-dev 173] Re: [PATCH] multibyte patch for PHP 4.1.0

Masaki Fujimoto php-dev@php.gr.jp
Sun, 23 Dec 2001 00:50:57 +0900


ふじもとです。

On Sat, 22 Dec 2001 15:12:22 +0900
Tomoyuki Asakawa <tom@asakawa.ne.jp> wrote:

> ところで、このパッチは、Zendコンパイラ/オプチマイザと互換
> はあるのでしょうか?

すみません、実は未検証です。APCは構造的に問題ないと思うのですがZend製品
に関しては自信がありません。どなたか動作させてみた方がいらっしゃると良い
のですが。まとまった時間がとれたら検証したいですが、ドキュメントの和訳を
優先させたいのでしばらくは無理そうです。

# Optimizerは結構不安...

> たしかに、php.iniを、見に行くべきではないですね。
> メモリ上?の、mbstring.internal_encodingを(もしあるのなら)
> 見るのならおかしくないと思います。

うーん。ご存知かとは思いますがmbstring関連の設定値はmbstring_globals(ZTS
時はmbstring_globals_idとスレッドIDによりマップされたmbstring_globalsへ
のポインタ)に格納されるので、結局同じ事かと思うのです。

ついでですが、僕のパッチのencodingにあたるものはPHP4のmbstring.internal_encoding
というよりは国際化版PHP3でいうところのi18n.script_encodingだと思っていま
す。

> > とはいえ、encodingディレクティブの評判があまりに悪ければ、mbstringの設定
> > 値を読みに行く方法も検討してみます。
> 
> たぶん、評判というより、どうあるべきかという問題じゃないでしょうか?

すいません。弱気な僕としては「皆さんの評判」==「どうあるべきか」だったも
のですから...

-snip-
> そのおかげで、文字コードや、プログラムという、ものを理解できない
> ディザイナに、phpコードの含有した、htmlを渡してもなんとかなりました。
> 
> PHP4は現状では、上記の人に使わせるには、おまじないが多すぎて、結構難
> しいです。
> はやくPHP3並に、なってほしいと思います。
> 
> PHP3は、ソースを内部コードに自動変換する機構があった
> おかげで、internal_encodingをEUCにすることで、すべて?
> 丸く収まりました。(ファイルのコードでは混乱しましたが)


> 
> でもこの機構をPHP4に入れるのは、本家は受け入れがたいと思います。
> 
> ところが、藤本さんのパッチ(さっきまちがえましたすいません)は
> Sjisのまま扱うわけなので、許容範囲ではないかと思います。
> 
> 勝ってな事ばかり言ってすいませんが。
> PHP4を、普及させるには、コード問題の単純化は、必要なことだと思います。

先日大垣さんからもご指摘いただいたのですが、Zend Engineに関しては新機能
追加は結構困難だろうと思われるのでShift_JISを「通す」パッチのコミットで
さえ出来れば御の字、という状況だと考えています。

逆にZend Engine 2に関してはまだまだ機能の検討段階にあるようなので、スク
リプトのエンコーディングに対応するだけでなく、internal_encodingに「変換」
する機能を追加することも可能かもしれません。とはいえ、こちらもあまりぐず
ぐずしているとマルチバイト対応さえしなくなってしまいそうなので、早いとこ
ろアクションを起こしたほうが良さそうですが。

という事情なので、とりあえずもう少しフィードバックが得られたらphp-devに
投げてみつつ、Zend Engine 2用のパッチも作ってみようかと考えています。師
走ということで忙しくてなかなか思うように進みませんが...

--
藤本 真樹

アストラザスタジオ
fujimoto@studio.co.jp
fujimoto@php.net