9

[symfony]Fatal error: Class ‘BaseFormPropel’ not found

Tag: phpuechoco @ 18 : 53 : 46

(関連記事:[symfony]Class ‘BaseFormPropel’ not foundエラー解決

symfony 1.1系列が出てるので、sandboxを拡張してsfFormの練習がてらアプリを作っているのですが、symfony 1.1.1や1.1.2で、以下のようなエラーが出ました。

php:
  1. [?php /** * Project form base class. * * @package form * @version SVN: $Id: sfPropelFormBaseTemplate.php 6174 2007-11-27 06:22:40Z fabien $ */
  2. abstract class BaseFormPropel extends sfFormPropel { public function setup() { } }
  3. 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タグが大括弧で始まっていること。

プロジェクト内を検索してみたら、

TEXT:
  1. /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エラー解決

Leave a Reply