传递没有实例的PHP类

时间:2016-03-10 05:10:43

标签: php types

我已经构建了:

  • 用于数据库操作的IDbContext接口
  • 表示通用数据库连接的DbContext抽象类
  • 用于常见域模型操作的IDomain接口
  • IDomain的几个具体实现,在本例中为Domain
  • 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中是否合法,或者是否有一个我不知道的更好的解决方案。

0 个答案:

没有答案