1

次のように別のモジュールで拡張したいから User_RegistrationController があるとしましょう:

class Clinic_RegisterController extends User_RegisterController

しかし、私はそのためのPHPエラーを持っています:

( ! ) Fatal error: Class 'User_RegisterController' not found /application/modules/clinic/controllers/RegisterController.php on line 4

別のモジュールからコントローラーを拡張する方法はありますか?

4

3 に答える 3

3

ベース コントローラーを別のライブラリ クラスにプルすることができます。

class App_Controller_Action_MyController extends Zend_Controller_Action
{
    // your base controller code here
}

次に、モジュール内のコントローラーfooが空になる可能性があります。

class Foo_MyController extends App_Controller_Action_MyController
{
}

モジュールのコントローラーにはbarオーバーライドを含めることができますが、

class Bar_MyController extends App_Controller_Action_MyController
{
     // override your members/methods
}

App_として追加することを忘れないでくださいautoloadernamespace

于 2012-04-09T16:05:56.727 に答える
1

オートローダは、他のモジュールからコントローラを見つけるように設定されていません。

あなたがしていることをしたい場合はrequire_once、クラス定義の上にステートメントを追加するだけです:

require_once APPLICATION_PATH . '/modules/user/controllers/RegisterController.php';

class Clinic_RegisterController extends User_RegisterController
{
    //...
}
于 2012-04-09T23:35:32.890 に答える
0

別のモジュールのコントローラを拡張する必要があるのはなぜですか? これにより、別のモジュールへの依存関係が作成されます。両方のコントローラーに共通のコードがある場合は、アプリケーション層でアクション ヘルパーを使用します。

于 2012-04-10T05:08:25.163 に答える