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'
}
}
どちらのバリアントがより正しいですか? バリエーションを提案できますか?感謝