Zendを使用してフォームやビューを動的にオーバーライドする方法は別ですが、関連していますか? .
クライアントがアプリケーション用のカスタム フォームを作成できるように、Web アプリケーション用の一連のデフォルト フォームをロードする前に、Zend がカスタム フォーム/ビューをロードしようとするようにします。
デフォルトの zend クラスの前に別のパスをロードするようにオートローダーをどのように設定しますか?
Zendを使用してフォームやビューを動的にオーバーライドする方法は別ですが、関連していますか? .
クライアントがアプリケーション用のカスタム フォームを作成できるように、Web アプリケーション用の一連のデフォルト フォームをロードする前に、Zend がカスタム フォーム/ビューをロードしようとするようにします。
デフォルトの zend クラスの前に別のパスをロードするようにオートローダーをどのように設定しますか?
他の質問と同様に、ファクトリクラスを使用する必要があります。このクラスは、事前定義されたディレクトリで、新しいフォームまたはデフォルトのフォームの存在をチェックします。
あなたがする必要があるのは次のようなものだけです:
// $formname is the parameter passed to the factory class
$defaultclassname = "Default_Form_{$formname}";
$classname = "New_Form_{$formname}";
if(file_exists("/path/to/directory/of/new/{$formname}.php"))
return new $classname();
else
return new $defaultclassname();
これは、/ MyLib / Form/Form_Factory.phpのようなファクトリクラスで行われます。
そして、あなたのコントローラーで:
$form = MyLib_Form_Factory::createForm('user');