パスワードを忘れた? アカウント作成
5809 story

PHP 4.3.2 リリース 18

ストーリー by Oliver
<?PEAR?> 部門より

dseg 曰く、 "PHP 4.3.2 が29日にリリースされた(リリースノート変更点一覧)。主にバグフィクス中心だが、画像を扱う為のライブラリである GD の同梱バージョンが最新の2.0.12 になった事、Apache2用の SAPI の新規追加、DBA拡張モジュールの修正と強化といったところが目に付く。
また、今バージョンより、Unix版では既に標準配布に含まれていた 『PEAR』がWindows版(の.zipパッケージの方)にも同梱されるようになった事は要注目だろう。 PEAR は PERL にとっての CPAN にあたる、PHP4用の標準クラスライブラリで、コアコンポーネントと拡張パッケージ、PECLと呼ばれるCで書かれた拡張モジュールからなる。標準でパッケージインストール/管理用のコマンドラインツールが付属するが、最近ではPEAR_Frontend_Webという、Webブラウザ経由でのPEAR のインストールを可能にするモジュールも開発されており、従来に比べるとインストールのプロセスがより分かり易くなって来ている。未だPEARを使っていない開発者にとっては、そろそろ試してみるちょうど良い頃合かもしれない。ところで、PEAR...使っていますか!?"

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • by tomatsu (2545) on 2003年06月02日 2時02分 (#327634)
    ChangeLogの日本語訳 [dyndns.org] より
    #21820 [php.net]のバグ修正 ("$arr['foo']"が本来E_PARSEとなるべきところで不要なE_NOTICEを発生させる) (Jani)

    というのが、今回の変更点の一番のネックかもしれません。
    実行中の軽微なエラーとしてWarning未満の扱いで通常(デフォルトで)エラーメッセージなしで動いていたものが、実行前の構文エラーとして扱われることになりました。

    今まで動いていたものが突然うんともすんとも言わなくなる変更なので、注意すべきところだと思います。

    #日頃、丁寧なコーディングを心がけていないと、これの対策にしばらく時間をつぶされることになるかも。
    • これ、できるかな?
      おーできるできる。
      ってレベルで、本気で構文とか覚えずに使ってきた人間としては脅威です。(^^;
    • 参考になったのでM1しておきました。しかし、毎度変更の多いPHP自体は(-1,またかよ)って感じです。

      今まで動いていたものが突然うんともすんとも言わなくなる変更なので、注意すべきところだと思います。
      #日頃、丁寧なコーディングを心がけていないと、これの対策にしばらく時間をつぶされることにな

      • 要するにエラーチェックが厳しくなっただけではありませんか。しかも読んでるとデフォルトが変わっただけの扱いみたいなので、C で言えば、何も書かないと -Wall になるみたいな。

        まあでも適当に書いたコードが動かなくなってきた傾向は確かにありますね。main.cgi?cmd=delete みたいに呼び出されると自動的に $cmd = 'delete' になると思ってた頃に書いてたコードが、バージョンアップによるデフォルト状態の変更で動かなくなっててあせったりとか。

        PHP は際立った魅力に欠ける言語だと思います。私は好きで使っていますけど、セッション管理とかが楽だし、クラスも簡単に使えるし、データベースも楽だし、そつのない言語だからです。

        なぜ使いやすいのか考えてみると、Perl の CPAN のような周辺ライブラリをチェックすることなく、標準あるいは標準拡張ライブラリが充実しているからだと思います。最近 IMAP をいじってみているのですが、別途入れる拡張ライブラリではなく標準になっており、ドキュメントも本体に含まれています。

        ちゃんと情報を追える人なら、拡張ライブラリの充実している言語のほうが良いのだとは思いますが、そうでない人にとっては本体でやってくれたほうがわかりやすくていいです。

        ベンダごとにデータベースを扱う関数系が本体で用意されており、汎用的に DB を扱うクラスが拡張ライブラリで用意されています。この場合、もちろん拡張ライブラリを使用する方が良いと思います。私は最近まで知りませんでしたので、私の今までのコードは MySQL の関数群をじかに使っています。本体のドキュメントしか読んでいなかったので、その存在に気が付きませんでした。今回から本体に含まれるようになるとのことで、ドキュメントでの言及もあったらよいと思います。

        PHP は、「特に使わない理由はない」という感じの言語です。実際便利ですし。積極的に使う理由が少ないので、マニアウケはしないんですけどね。そういう人は、Scheme とかでウェブアプリ作っちゃえ、とかやって自己満足してればいいんです。と煽ってみる。
        親コメント
        • by pantora (11989) on 2003年06月02日 20時29分 (#328210)
          > ベンダごとにデータベースを扱う関数系が本体で用意されており、
          > 汎用的に DB を扱うクラスが拡張ライブラリで用意されています。

          今、汎用DBクラス使って開発しています。

          DB差し替えが容易なので結構いい感じです。
          たとえば、MySQL用PHPコード->PostgreSQL用PHPコードへの
          移植とか、作業を軽減できます。
          --
          PCにECC Registeredメモリの利用を推奨します。
          親コメント
      • >毎度変更の多いPHP自体は(-1,またかよ)って感じです。

        PHPを知らないので、以下の警句がPHPに当てはまるのかどうかは俺には判断できませんが、
        この警句、一応挙げておきます。

        「プログラミング言語は満載した機能を特色の第一とするものではない。
        あとになって機能の追加が必要と判明するような弱点と制限を取り除いて設計すべきである。」
        (アルゴリズム言語Schemeに関する第五改訂報告書、犬飼 大訳 [1])
        [dreamhost.com]
        親コメント
  • PHP-users ML でも sprintf に関するバグが報告 [php.gr.jp]されています。

    PEAR は英語版マニュアル [php.net]が改訂され PEAR::DB のようないくつかのクラスはかなり使いやすくなっています [php.net]。
    また PHP-Magazine [php-mag.net] が PEAR を全面的にプッシュしており、PEAR コミュニティも積極的に利用していく [sakura.vg]ようです。日本からも取り寄せ可能です。

    今 PEAR でお手軽にかじれて美味しいのは PEAR::DB のようにドキュメントが充実して安定しているクラスと PEAR 基底クラスの辺りだと思います。後者は各クラス間で統一的なエラー制御と getStaticProperty による設定の一元化等に使えます。

    2ch PEAR スレッド [2ch.net]やそのスレッドから派生した Wiki [sakura.vg] もあり、いくつかの翻訳が進んでいます。
    英語と日本語の情報格差も気になっているのでありがたい存在に思えます。

    面白そう美味しそうなクラスはいっぱいあります。けど情報が少ない。
    兎に角人手が足りていないように思えます。ドキュメントがまだ充実しておらず、色々なクラスを使って評価を行おうという人も少なく使おうと思っても習得コストがお高い状況に思えます。
    今は投資&勉強&貢献だと思って半ば無理矢理使っています。自分で組んだ方が早いと思う事もしばしばですが一度学べば次から楽になると自分に言い聞かせつつ。
    ドキュメントやレビューなどの情報が充実すれば改善されるのか、それともこんなものなのか。PHP 以外の言語経験がほとんど無く分からないのですが CPAN とかはもっと使いやすいのでしょうか。隣の芝生は青いなぁ、、;
    • BenchmarkとVar_Dumpで遊んでます。
      XML/XSLTの充実に期待。
      親コメント
    • サブジェクトの"||"の意味について、深く考えこんでしまいました。(論理和等なのかと・・)

      A.「sprintfにバグ」または、「PEARが美味しい」 のどちらかが
        真であれば、この条件は真である。

      B.「sprintfにバグ」があった場合、「PEARが美味しい」が実行される。
        
      C.「sprintfにバグ」の言い換えが「PEARが美味しい」である。

      上記、A,B,Cの3つの解釈のどれかが真であるのかなーと思って・・。
      式: A&&(!B&&!C) || (!A&&!C)&&B || (!A&&!B)&&C  

      単なるいらんつっこみです。ごめんなさい。

      でもでも、以下の語法は、一般的であると私も思いますので、
      ここにもbitwise演算がっ!(笑)とまでは、さすがに思わず:

      今は投資&勉強&貢献だと思って半ば無理矢理使っています。
      親コメント
  • PHPは3.X.Xの頃から使ってるんですけど、やっぱ日本語関係でハマるのは変わらない
    ですねぇ……。

    つい最近、競馬関係のデータの処理で"ヴァース"(何のことかは競馬好きじゃなきゃ
    分からないでしょうが)という文字列を表示すると、"ヴゼス"になっちゃって困って
    しまいました。

    しょうがないので、

    if(preg_match("ァース",$str){
        処理……。
    }

    みたいな処理をカマしてしまいました。これって悲しい。
    • 推測ですが、windows(というかSJIS)で非国際版使ってたりしませんか?
      くわしくはこのへん [php.gr.jp]かな?
      初歩的すぎる指摘でバカにしてると思われるかもしれませんが、私も「そんなこと」で悩んだことがあるので…。

      #ヴァースって、雲じゃない土地のことでしょ?
      • >>推測ですが、windows(というかSJIS)で非国際版使ってたりしませんか?

        動かしているのはLinuxでPHP-4.3.2RC3なんですが、ヴァーチャルサイトでSJIS使ってる人がいまして、php.iniは

        [mbstring]
        output.buffering = Off
        default.charset = Shift_JIS
        mbstring.language = Japanese
        mbstring.encoding_translation = On
        mbstring.internal_encoding = EUC-JP
        mbstring.http_input = auto
        mbstring.http_output = SJIS
        mbstring.substitute_character = none;

        なんて設定になってます。もちろん./configure時には

          --enable-mbstring

        をカマしてます。

        >>#ヴァースって、雲じゃない土地のことでしょ?

        いや、今年のダービー馬の名前が“ネオユニヴァース”っていうんです。:D
        親コメント
typodupeerror

長期的な見通しやビジョンはあえて持たないようにしてる -- Linus Torvalds

読み込み中...