0

PHP アプリケーションを作成していますが、アーキテクチャーについて質問があります。

アプリにいくつかのシステムがあります。たとえば、キャッシュ システム出力システムアプリケーション システムなどです。また、これらのシステムをリンクするためのレジストリもあります。

アプリケーションでキャッシュを使用する例を次に示します。

class Manager {

    public function __construct() {
        $registry = \Jx\System\JxRegistry::getInstance();
        $this->JxCache = $registry -> JxCache;
    }

    public function getAppInfo($JxId) {
        $someInfo = $this->JxCache->Applications->$JxId;
    }

}

しかし、この方法ではどこでもRegistryを呼び出す必要があり、オブジェクトを格納するためのローカル変数を作成する必要があります。

次のような別のアイデアがあります。

class Kernel {
    public function __construct() {
        $this->JxCache = new JxCache;
    }
}
/* .. */
new Kernel();
/* .. */
class Manager extends Kernel {

    public function __construct() {

    }

    public function getAppInfo($JxId) {
        $someInfo = $this->JxCache->Applications->$JxId; //JxCache declared in class 'Kernel'
    }

}

どちらのバリアントがより正しいですか? バリエーションを提案できますか?感謝

4

1 に答える 1

1

Yiiフレームワークには別のアプローチがあります。

Yiiの動作

于 2012-12-02T15:51:40.507 に答える