スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

[Cannot access protected property Zend_Controller_Dispatcher]

PHP 5.2.0がリリースされ、その日にアップグレードをしたのですが、肝心のZend Frameworkでの作業が進まず、休日に作業する事になりました。

しかし、以前は出なかったエラーが出てしまい、しかもParse Errorだから実行すら出来ない。
Warningならちょっとバグがあるのかなーとか思いつつも開発を進める事が出来るんですけど、さすがにそれも出来ない。

環境は
PHP 5.2.0
eAccelerator 0.9.5
Zend Framework 0.2.0

ちなみに、eAcceleratorを無効にすると問題なく動作する。
有効にすると、一度目は正しい結果が得られるものの、二度目からのアクセスでは
「PHP Fatal error: Cannot access protected property Zend_Controller_Dispatcher::$_directory in /home/kgworks/lib/Zend/Controller/Dispatcher.php on line 110」
というエラーが出てしまい、以降、そのスクリプトでの実行結果を確認する事が出来ない。

PHP 5.2.0とeAccelerator 0.9.5が怪しいと思い、eAcceleratorのconfigureオプションを若干変更するも、解決せず。

そうすると、PHPのバージョンを下げるか、Zend Frameworkのバージョンを下げるかという選択肢になってくるのですが、Zend Frameworkは0.1.5から0.2.0でだいぶ変わった点があり、開発する上での設計に問題が出そうなので、PHPのバージョンを下げる事にしてみる。

PHPのダウングレードであれば、とりあえずはZend Framework0.2.0として開発が進められるから。

で、PHP 5.1.6をダウンロードしてeAcceleratorのインストールもし直したところ、あっさり動きました・・・。

でも、PHP 5.2.0とeAccelerator 0.9.5の環境で動いているシステムもあるんですよね。Zend Frameworkは一切関わってないんですけど。

なので、PHP 5.2.0の仕様がZend Framework 0.2.0と上手く噛み合ってないんじゃないのかなー?と思ったり。
それか、もしかしたら構築ミスかもしれないなぁ。
でもとりあえず早めに開発を進めたいので5.1.6で進めていく事に。

5.2.0の話題はまだそこまで多くないので、海外記事のRSSを元に情報を漁ってみようと思います。
スポンサーサイト

この記事のトラックバックURL

http://kgworks.blog47.fc2.com/tb.php/35-5cc52975

コメント

PHPとかの仕組みはよくわからんのですけど、
5.1系列から5.2系列に変わった事によってなにかしらの問題が調べて見るとちらほら。

オープンソースってたくさんの人の手が加わるから
「Aと言う製作者の意図では動いても、Bと言う開発者の意図では動かない」
と言うことも起こりうるのかなあ。。。
5.1から5.2は大幅なバージョンアップだから、だいぶ変わってるはず。
5.0から5.1で問題が起きた人も少なくないはずなので。

ちなみに「PHP 5.2.0 eAccelerator 0.9.5」でぐぐるとこの記事が2番目に、「PHP 5.2.0 Zend Framework 0.2.0」でぐぐると5番目に出てきてびっくり(笑)
こんばんは。
複数の開発ツールを使ってたりするとバージョン問題に悩まされますよね。
ちょっと違ったら、動かないこともしばしば・・・
しかも、WEBのアプリケーションだとブラウザ間で挙動も違ったりしてもう訳がわかんなかったり。
ご苦労様です。
初めましてー。コメント有難う御座います。
バージョン特有の問題とか、この組み合わせだと落ちるとか、色々と問題はありますけど、結構そういうところは楽しんでやってます。

携帯向けのサービスだと、携帯特有の問題があったりして、そっちの方が苦労します・・・。
もしブログとかお持ちであればURL教えて下さいね。←遊びにいきます

コメントする

管理者にだけ表示を許可する

Template Designed by DW99

テクノラティ
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。