Cakephpでコンポーネントを追加したらFatal error: Class declarations may not be nested…になった時の対処法

CakePHP2でフツーにComponentをコントローラーに導入しようとしたら、

Fatal error: Class declarations may not be nested in /var/www/ ... /lib/Cake/Error/ExceptionRenderer.php on line xx

というエラーが発生して(なんでコンポーネントの読み込みがネストされてるんだろ…)と疑問に思って悩んでしまったのでメモ。

エラーログをまずは確認!

/app/tmp/logs/error.logを確認すると...

yyyy-mm-dd hh:mm:ss Error: Fatal Error (64): Cannot redeclare xxxComponent::$a in [/var/www/ … /app/Controller/Component/ResizeimgComponent.php, line 11]

とあったので変数が複数回宣言されているくさいなと思い、確認。

もしかして:2回同じ変数を宣言したから?

class xxxComponent extends Component {
  ...
  public $a;
  ...
  public $a;
  ...
}

という具合に2回同じ変数を宣言してしまったようでした。

結論:このエラーが出たらerror.logを確認

…なんともエラーの文章では余計どうしていけないのか分からなくなるのでこういう時は/app/tmp/logs/error.logを見て詳しく確認してみるといいようです。

コメントを残す

メールアドレスが公開されることはありません。