php 中的抽象
Abstraction in php
我在 PHP 和配置 class 中几乎没有外部服务 - 一个单例 class 从 .ini 文件中获取配置列表。
对于每个 class 我在构造函数中做类似以下的事情:
$this->config = ConfigClass::getConfig()
我是否需要声明一个抽象 class 并且只有他们在构造函数中放置该配置 class 而不仅仅是扩展 class?
例如:我也想添加记录器
我很高兴得到一些例子
摘要 classes 用作派生 class 的模板。必须在派生的 class.
中覆盖在基本抽象 class 中声明的具有抽象关键字的任何方法
见php.net documentation on abstract classes。
对于您的示例,这样做就足够了:
class Base {
public function __construct()
{
$this->config = ConfigClass::getConfig();
}
}
class Derived extends Base {
}
但是,请注意 - 如果您想在派生的 class' 构造函数中添加一些内容,您必须显式调用它,如下所示:
class Base {
public function __construct()
{
$this->config = ConfigClass::getConfig();
}
}
class Derived extends Base {
public function __construct()
{
parent::__construct();
// Other code
}
}
我在 PHP 和配置 class 中几乎没有外部服务 - 一个单例 class 从 .ini 文件中获取配置列表。 对于每个 class 我在构造函数中做类似以下的事情:
$this->config = ConfigClass::getConfig()
我是否需要声明一个抽象 class 并且只有他们在构造函数中放置该配置 class 而不仅仅是扩展 class?
例如:我也想添加记录器 我很高兴得到一些例子
摘要 classes 用作派生 class 的模板。必须在派生的 class.
中覆盖在基本抽象 class 中声明的具有抽象关键字的任何方法见php.net documentation on abstract classes。
对于您的示例,这样做就足够了:
class Base {
public function __construct()
{
$this->config = ConfigClass::getConfig();
}
}
class Derived extends Base {
}
但是,请注意 - 如果您想在派生的 class' 构造函数中添加一些内容,您必须显式调用它,如下所示:
class Base {
public function __construct()
{
$this->config = ConfigClass::getConfig();
}
}
class Derived extends Base {
public function __construct()
{
parent::__construct();
// Other code
}
}