エラーの原因は分かりませんでしょうか

2012年10月9日 at 14:24

あるブロックを作って、Linuxのサーバーでは問題なく動作するのですが、MAMPで実行すると、以下のエラーが出ます。
ブロックの作り方に問題があるんだと思うんですが、なにか原因は分かりませんでしょうか。
concrete5.5.2.1.jaです

Fatal error: Block::getInstance() [block.getinstance]: The script tried to execute a method or access a property of an incomplete object. Please ensure that the class definition "TomoacClearBothBlockController" of the object you are trying to operate on was loaded _before_ unserialize() gets called or provide a __autoload() function to load the class definition in /Users/tomo/MAMP/htdocs/concrete5.5.2.1.ja/concrete/models/block.php on line 329

タグ:

Re: エラーの原因は分かりませんでしょうか

2012年10月9日 at 14:26
両方のPHPのバージョンは何でしょうか
 

Re: エラーの原因は分かりませんでしょうか

2012年10月9日 at 16:19
Linux(VPS)のほうは、5.3.17。
MAMPのほうは、5.3.15。
です。
 

Re: エラーの原因は分かりませんでしょうか

2012年10月9日 at 17:23
キャッシュ設定を、disableにしたらエラーが回避できました。

一時的なことかと思い、再度、enable にしたら同じエラーになります。
キャッシュをdisableにしないといけません。

なにが問題なんでしょうか?、分かりませんでしょうか?

#Linuxのほうは開発用のため、キャッシュはOFFにしてありました。
 

Re: エラーの原因は分かりませんでしょうか

2012年10月11日 at 7:08
まだこの件で悩んでいます。

環境を変えたら、以下のエラーが出ます。
(キャッシュをOFFにすると、これも先のエラーも出ないのですが。)

Fatal error: require_once(): Failed opening required '/var/www/httpsdocs/concrete5japan-concrete5-da01100/web/concrete/blocks/tomoac_clear_both/controller.php' (include_path='/var/www/httpsdocs/concrete5japan-concrete5-da01100/web/libraries/3rdparty:/var/www/httpsdocs/concrete5japan-concrete5-da01100/web/concrete/libraries/3rdparty:.:/usr/share/pear:/usr/share/php') in /var/www/httpsdocs/concrete5japan-concrete5-da01100/web/concrete/core/libraries/loader.php on line 205

このエラーをよく見ると、/concrete/blocks/tomoac_clear_both/controller.php と、パッケージなのに、、/concrete/blocksのcontroller.php を探しに行ってます。
正しくは、/packages/blocksのcontroller.php を見に行って欲しいです。

キャッシュをOFFにすると問題なく動作するので、そこを読みに行っていると思うのですが、ONにすると上記を探して、ファイルがない!とエラーになっているようです。

なにか原因と考えられる点はないでしょうか。

Concrete5のバージョンによって、エラーの出方が異なるようですが、どのバージョンでもエラーは出ます。