php 依賴注入


對於依賴注入 我現在的理解是把一個方法當成一個變量放進另一個方法的形參里

 

<?php
class Factory {
    public static function getDb(){
        return new Db();
    }
}

class Db {
    public static function query($sql){
        echo $sql;
    }
    public static function querys($sql){
        echo $sql."s";
    }
}


class example {
    private $_db;
    function getList(){
        $this->_db->query("123");//這里具體sql語句就省略不寫了
    }
    //從外部注入db連接
    function setDb($connection){
        $this->_db = $connection;
    }
}
//調用
$example = new example();
$example->setDb(Factory::getDb());//注入db連接
$example->getList();

 

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

 簡單點

<?php
class email {
    public static function sendemail(){
        echo "發送郵件";
    }
}

class sms {
    public static function sendsms(){
        echo "發送短信";
    }
}


class example {
    private $_send;
    function setSend($send_function){
        $this->_send = $send_function;
    }
}

$example = new example();
$example->setSend(sms::sendsms());

example好比注冊的類,注冊成功后想發送短信就

$example = new example();
$example->setSend(sms::sendsms());

想發送郵件就

$example = new example();
$example->setSend(email::sendemail());

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM