0

モジュール自体内で HMVC モジュールのコントローラーを拡張するにはどうすればよいですか?

class Backend extends Backend_Controller {
    public function __construct(){
        parent::__construct();
    }
}

HMVC に関連する次の典型的な Codeigniter ファイル構造を想定します。

/
/application
/application/modules
/application/modules/backen
/application/modules/backen/controllers
/application/modules/backen/controllers/Backend.php
/application/modules/backen/libraries
/application/modules/backen/libraries/Backend_Controller.php

この構造では、「クラスが見つかりません」というエラーが発生します。「/application/libraries/Backend_Controller.php」フォルダに入れると動作します。

4

2 に答える 2

2

コントローラーは、CodeIgniter で CI_Controller を拡張する必要があります。コントローラはライブラリを拡張できませんが、次のように含めることができます $this->load->library('backendLib');

Wiredesignz HMVC 拡張機能を使用している場合は、ベース コントローラーを使用できます。コア ディレクトリに backend_controller クラスを作成し、MX_Controller を拡張するだけです。これで、モジュール コントローラーで backend_controller を拡張できます。

一番、

バート

于 2015-02-20T18:13:11.367 に答える
0

こんにちはCIは常にCI_Controllerで始まるコアクラスまたはMY_Controller MY_EmailなどのようにMY_で始まる拡張クラス名を探しますライブラリのように呼び出される他のクラスがない場合は、config.phpに次のコードを追加してカスタムクラスを自動ロードします

/*
| -------------------------------------------------------------------------
| Native spl_autoload_register() - by Kenneth Vogt
| -------------------------------------------------------------------------
|
| Here is an updated version of Phil Sturgeon’s code:
|
| Thanks to Phil Sturgeon Kenneth Vogt and InsiteFX.
|
| NOTE:
| Requires PHP 5.3.+
| As of CI 3.0 Dev - The constant EXT has been removed modified
| to use '.php' now instead of EXT.
| should work for all version of CI and PHP 5.3
|
| Place at the bottom of your ./application/config/config.php file.
| -------------------------------------------------------------------------
*/

spl_autoload_register(function($class)
{
    if (strpos($class, 'CI_') !== 0)
    {
        if (file_exists($file = APPPATH . 'core/' . $class . '.php'))
        {
            include $file;
        }
        elseif (file_exists($file = APPPATH . 'libraries/' . $class . '.php'))
        {
            include $file;
        }
    }
}); 

この fourm 投稿スレッドからの参照 http://forum.codeigniter.com/thread-473-post-2679.html#pid2679

カスタムコントローラー名 Backend_Controller を使用してコントローラーを拡張できるようになりました。このクラスは、アプリケーションのライブラリまたはコアディレクトリの下で利用できるはずです

于 2015-02-20T20:38:43.873 に答える