9 月
[symfony]Fatal error: Class ‘BaseFormPropel’ not found
(関連記事:[symfony]Class ‘BaseFormPropel’ not foundエラー解決)
symfony 1.1系列が出てるので、sandboxを拡張してsfFormの練習がてらアプリを作っているのですが、symfony 1.1.1や1.1.2で、以下のようなエラーが出ました。
-
[?php /** * Project form base class. * * @package form * @version SVN: $Id: sfPropelFormBaseTemplate.php 6174 2007-11-27 06:22:40Z fabien $ */
-
abstract class BaseFormPropel extends sfFormPropel { public function setup() { } }
-
Fatal error: Class 'BaseFormPropel' not found in /path/to/symfony/lib/form/base/BaseMemberForm.class.php on line 10
状況的には、symfonyコマンドのpropel:build-formsで作成したフォームを使おうとすると、BaseFormPropelクラスがないって言って、上のようなエラー画面になってしまう。
不自然なのは、phpタグが大括弧で始まっていること。
プロジェクト内を検索してみたら、
-
/lib/symfony/plugins/sfPropelPlugin/data/generator/sfPropelForm/default/template/sfPropelFormBaseTemplate.php
に確かに大括弧で始まる同じデータがあった。
なんでこのファイルをロードするんだろう。。。
解決策1
とりあえず、自分のやる気をそがれるのが嫌だから、暫定措置として、/lib/form/base/BaseXXXXForm.class.phpのextendsしているクラスをBaseFormPropelからsfFormPropelに変更。簡単に言うと、BaseFormPropelっていう中間のクラスを抜いただけ。とりあえず、それほど大きいアプリじゃないから、このままでいいや。
解決策2
思いつきで、クラス名とファイル名を変えてあげればいいかなっと思って、/lib/form/base/BaseXXXXForm.class.phpのextendsしているクラスをBaseFormPropelからBaseFormPropel2に変更。/lib/form/BaseFormPropel.class.phpをBaseFormPropel2.class.phpに変更。そのファイルの中身をBaseFormPropelからBaseFormPropel2に変更。どうやらこれでもうまくいきました。なんていうか。。。微妙な解決策w
ネットで探したら、同じエラーの人がいた。symfony framework forum: Installation and setup => "Fatal error: Class 'BaseFormPropel' not found"でも、起きている状況が違うような気もするな。あと、英語よくわからない。
根本的な原因がわからないのが、ちょっと後味悪いかな。
続き:[symfony]Class ‘BaseFormPropel’ not foundエラー解決
