我在PHP和配置类中只有很少的外部服务 - 从.ini文件中获取配置列表的单例类。 对于每个类,我都会做类似于构造函数中的内容:
$this->config = ConfigClass::getConfig()
我是否需要声明一个抽象类,只有它们在构造函数中放置该配置类而不仅仅是扩展该类?
例如:我还要添加记录器 我很乐意得到一些例子
答案 0 :(得分:1)
抽象类用作派生类的模板。必须在派生类中覆盖在基本抽象类中声明的具有abstract关键字的任何方法。
请参阅php.net documentation on abstract classes。
对于您的示例,只需执行以下操作:
class Base {
public function __construct()
{
$this->config = ConfigClass::getConfig();
}
}
class Derived extends Base {
}
但是,注意 - 如果你想在派生类的构造函数中放置一些东西,你必须明确地调用它,如下所示:
class Base {
public function __construct()
{
$this->config = ConfigClass::getConfig();
}
}
class Derived extends Base {
public function __construct()
{
parent::__construct();
// Other code
}
}