我的应用程序有一个单一的入口点,我们称之为index.php
。
在index.php
其中实例化一个如下所示的类;
final class Griff {
public $a, $b, $c, $d, $e;
public function __construct() {
spl_autoload_register(array($this, 'autoload',));
$this->a = 'a';
// blah blah blah
new RouterGriff($this);
}
private function autoload($name) {
// autoload function
}
}
new Griff();
您会注意到它RouterGriff
在内部实例化Griff::__construct()
,RouterGriff
如下所示:
final class RouterGriff {
private $griff;
public function __construct(Griff $griff) {
$this->griff = $griff;
$this->griff->b = 'b';
$this->griff->c = 'c';
}
}
我的问题如下;你会注意到我正在为存储的属性设置变量,Griff
因为RouterGriff
我想要一种注册表类型的结构到我的应用程序但不想使用单例。
如果我只设置属性RouterGriff
而不是会更好Griff
吗?或者考虑到我的应用程序在输出任何内容之前可以深入 10 个类,是否将传递Griff
给每个类是一种有效的做事方式?
我希望我说得通,谢谢
编辑
换一种方式,我想这样做,
final class Griff {
public $a;
public function __construct() {
spl_autoload_register(array($this, 'autoload',));
$this->a = 'a';
// blah blah blah
new RouterGriff();
}
private function autoload($name) {
// autoload function
}
}
new Griff();
final class RouterGriff {
public $b, $c;
public function __construct() {
$this->b = 'b';
$this->c = 'c';
}
}