0

CI-HMVCストックを使用しています。次のようなモジュール構造が必要です。

応用
    モジュール
        ユーザーabc
            モジュールA
                コントローラー
                モデル
                ビュー
            モジュールB
                ...
        ユーザー定義
            モジュールC
                ...

これはモジュール構成の間違った方法ですか? このようなことを行う別の一般的な方法はありますか?

ユーザーモジュールフォルダーを分離し、次のような URL で使用したい:
userABC.domain.com/module/controller/method
userBCD.domain.com/module/controller/method

4

2 に答える 2

1

必要に応じてその構造を使用できますが、次の点に注意してください。

各ユーザーのディレクトリをモジュールの場所として定義する必要があります。

// application/config/config.php
$config['modules_locations'] = array(
    // Absolute path              // Relative from default application dir
    APPPATH.'modules/userABC/' => '../modules/userABC/',
    APPPATH.'modules/userDEF/' => '../modules/userDEF/',
    APPPATH.'modules/userGHI/' => '../modules/userGHI/',
    // etc.
);

これを動的に実行できる場合もありますが、かなり早い段階でロードされるため、 hookconfig.phpが必要になる場合があることに注意してください。pre_system

もう 1 つは、アクティブなサブドメインに関係なく、すべてのユーザーのモジュールにアクセスできるようにする場合に重要なことです。順序が重要です。

userA に「blog」というモジュールがあり、userB もそうである場合、userA のみがロードされます (最初に userA のモジュール パスを定義すると仮定します)。2 つのモジュールが同じ名前を共有しないことが確実な場合、これはそれほど重要ではありませんが、ローダーが要求されたモジュールの場所を見つけるまでモジュールの場所のスタック全体を調べるため、パフォーマンスが低下する可能性があります。

module_location読み込まれているユーザーのサイト (サブドメイン) に応じて、単一のドメインを定義する必要があるようです。何かのようなもの:

// Get this value dynamically (not sure how you need to do it)
$current_user = 'userABC';

$config['modules_locations'] = array(
    APPPATH.'modules/'.$current_user.'/' => '../modules/'.$current_user.'/'
);
于 2013-01-15T00:44:47.060 に答える