我已经构建了:
DbContext的相应具体实现,它应具有由IDomain的具体实现确定的IDbContext行为。
abstract class DbContext implements IDbContext {
function __construct($host, $db, $credentials, IDomain $domain)
public function Get($id){
//base implementation determined by IDomain interface behavior
}
}
class DomainContext extends DbContext {
parent::__construct($host, $db, $credentials, Domain $domain)
public function Get($id){
//overrides or extends base implementation
//determined by Domain class implementation of IDomain interface
}
}
我已经读过,至少在版本7之前,仿制药似乎没有进入PHP,所以我已经放弃了这条路线。但是,如果不是要求有关的Domain模型类的接口或实例(如上例所示),它将是一个理想的替代方案,我可以只传递该类。但是,我不知道这在PHP中是否合法,或者是否有一个我不知道的更好的解决方案。