PHP ::存储数据库连接v。静态实例化

时间:2015-05-05 18:44:09

标签: php database

这些方法中哪一种在PHP中更有效(或更精通)?

class Amazing {
    protected $db;

    public function __construct () {
         $this->db = new Database::getInstance();
    }

    public function do ($blah) {
         $this->db->doInsert($blah);
    }

    public function again ($blah) {
         $this->db->doUpdate($blah);
    }
}

OR:

class Less_Amazing {

    public function do ($blah) {
         $db = new Database::getInstance();
         $db->doInsert($blah)
    }

    public function again ($blah) {
         $db = new Database::getInstance();
         $db->doUpdate($blah)
    }
}

一品脱啤酒正在回答。

1 个答案:

答案 0 :(得分:3)

我建议对这种情况使用依赖注入。你的班级应该尽可能减少对其他班级的依赖。在通过依赖注入构建对象时,应该为它提供任何依赖。每个班级都应遵循单一责任原则,即每个班级应承担一项责任。通过控制反转启用依赖注入。这意味着类Amazing不必创建数据库连接的实例。通过构造函数注入为它提供了一个数据库连接对象,所有它必须做的就是做“惊人的工作”:)

}, function (chart) {
        chart.renderer.text('<span style="color: red; font-weight:bold">Test</span>', 331, 41) 
        
        .css({
            fontSize: '12px'
        })
        .add();
        });           
   
    },  function (chart) {
        chart.renderer.text('<span style="color: red; font-weight:bold">(10)</span>', 331, 33) 
        
        .css({
            fontSize: '11px'
        })
        .add();
        });