PHP $this 在 class 中使用来引用 class
PHP $this use inside class to reference class
我在classcore
中有一个函数loadModule();
,但是要加载模块我需要在构造中定义变量,其中许多需要核心。我会简单地使用 loadModule("someModule", $settings, $dbc, $core, $etc...);
或 loadModule("someModule", $settings, $dbc, $this, $etc...);
因为这个函数在 $core 定义的核心 class 中吗?我现在很困惑,将不胜感激。谢谢
编辑:
预期用途看起来像
$this->core->loadModule("initialLoad, $settings, $version, $dbc, $parser, $layout);
模块结构看起来像
public function __construct($settings, $version, $dbc, $layout, $core, $parser){
$this->settings = $settings;
$this->version = $version;
$this->dbc = $dbc;
$this->layout = $layout;
$this->core = $core;
$this->parser = $parser;
}
我会研究依赖注入。也许使用 pimple.
之类的东西
让您的容器初始化所有模块。如果您需要更高级的使用,您可能可以代理这些服务,以便它们在第一次使用时懒惰地实例化。
然后您可以将核心注入 类 并根据需要使用加载的模块。
我在classcore
中有一个函数loadModule();
,但是要加载模块我需要在构造中定义变量,其中许多需要核心。我会简单地使用 loadModule("someModule", $settings, $dbc, $core, $etc...);
或 loadModule("someModule", $settings, $dbc, $this, $etc...);
因为这个函数在 $core 定义的核心 class 中吗?我现在很困惑,将不胜感激。谢谢
编辑:
预期用途看起来像
$this->core->loadModule("initialLoad, $settings, $version, $dbc, $parser, $layout);
模块结构看起来像
public function __construct($settings, $version, $dbc, $layout, $core, $parser){
$this->settings = $settings;
$this->version = $version;
$this->dbc = $dbc;
$this->layout = $layout;
$this->core = $core;
$this->parser = $parser;
}
我会研究依赖注入。也许使用 pimple.
之类的东西让您的容器初始化所有模块。如果您需要更高级的使用,您可能可以代理这些服务,以便它们在第一次使用时懒惰地实例化。
然后您可以将核心注入 类 并根据需要使用加载的模块。