[英]PHP OOP class structuring
我想知道在PHP中是否可以使用这种子类化结构。 如果这是重复的话,我道歉,因为我不知道该过程将被称为什么,而我唯一能找到的是一个封闭的问题,没有答案。
我正在上多个课。 例如,我们将说Main
和User
。
Main
类将保存所有启动代码。 所以
class Main{
//Setters for core variables and data needed to make calls
...
protected function fetchInfo(){
//Do Stuff to return info from other source(Curl calls in my case)
}
}
和User
class User extends Main{
public function getName(){
$data = $this->fetchInfo();
return $data['name'];
}
}
但是,而不是在我想要的地方拥有它。 $exampe1 = new Main(...);
设置变量,并且$example2 = new User();
调用子类执行$example2->getName();
有没有办法做像$example = new Main();
然后可以在需要时调用子类,例如$example->User->getName();
?
我知道可以用很多不同的方法来处理,但是我想将类与组织分开,我计划有很多子类需要从该主类中获取信息,并且想知道是否有办法它们可以以这种方式链接。
编辑:我不想只调用用户调用来获取函数的原因是,我最终将拥有15个以上的类来分别处理返回的数据,并且想知道是否有比为每个对象创建一个新对象更好的方法,如果我要使用它。
“ Main”不是“ User”,因此我会说这种子类化是一个糟糕的选择。
我可能会改为考虑注射。
class MainDataHandler {
//...
}
class User {
private $main;
public function __construct(MainDataHandler $main) {
$this->main = $main;
}
public function getName() {
return $this->main->getData('name');
}
}
注入的好处是您的类可以独立工作和测试,而无需依赖另一个类来完成工作。 同样,如果“ Main”发生了变化,那么您的User类也不取决于新Main的工作方式。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.