SweetCronがまたおかしくなった

このエントリーをはてなブックマークに追加
Facebook にシェア
[`evernote` not found]
[`yahoo` not found]
[`livedoor` not found]

あけましておめでとうございます。

早速ですが、しばらくSweetCronの調子が悪かったのですが、年も変わったことですし直しました。

以前にも、おかしくなった時の対応策をここで書いたような気がしますが、今回は別の原因でした。

問題は2点。

・管理画面を表示しようとすると、エラー画面が表示されてログイン画面が表示されない。

・フロントを表示すると、先頭にたくさんのワーニングが表示される。
エラー内容は以下の通り。


A PHP Error was encountered
Severity: Warning
Message: Creating default object from empty value
Filename: libraries/sweetcron.php
Line Number: 51


一つ目の問題は、前と同じようなエラーが出ていたのですが、結果的には違う原因になっていました。

エラーが発生した状態で継続し、別のエラーメッセージが表示されるパターンですね。

2つ目ですが、これはエラーメッセージが出ているので、調査は簡単ですね。シースを見ると、単純にオブジェクトのインスタンスが
まだ生成されていない状態でそのメンバ変数にアクセスしようとしてエラーになるという問題でした。

以前は、特に問題にならなかったんですが、動作環境のPHPのバージョンが上がったために発生するようになりました。
sweetCronは結構前にバージョンアップが止まっているので、問題があるとこうして自分で対応しないといけませんね。

対応策としては、オブジェクトのメンバ関数にアクセスする前にインスタンスを生成してあげればよいと。

たとえば、$dataのメンバにアクセスする前に

$data = new stdClass;

としてインスタンスを生成するだけでよいということです。

ここで、一つ目の問題に戻るんですが、こちらもログイン処理の中で同じ問題が発生していました。
それを直すと、うまく表示できるようになりました。

簡単にわかってよかったなと思っています。
 


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA


This blog is kept spam free by WP-SpamFree.