主頁(yè) > 知識(shí)庫(kù) > PHP經(jīng)典設(shè)計(jì)模式之依賴(lài)注入定義與用法詳解

PHP經(jīng)典設(shè)計(jì)模式之依賴(lài)注入定義與用法詳解

熱門(mén)標(biāo)簽:余姚電話機(jī)器人 廣東廣州在怎么申請(qǐng)400電話 咸寧銷(xiāo)售電銷(xiāo)機(jī)器人系統(tǒng) 電銷(xiāo)機(jī)器人問(wèn)門(mén)薩維品牌my 開(kāi)發(fā)地圖標(biāo)注類(lèi)網(wǎng)站 外呼系統(tǒng)能給企業(yè)帶來(lái)哪些好處 百度地圖怎樣標(biāo)注圖標(biāo) 百度地圖標(biāo)注偏差 400電話蘭州申請(qǐng)請(qǐng)

本文實(shí)例講述了PHP經(jīng)典設(shè)計(jì)模式之依賴(lài)注入定義與用法。分享給大家供大家參考,具體如下:

依賴(lài)注入的實(shí)質(zhì)就是把一個(gè)類(lèi)不可能更換的部分可更換的部分分離開(kāi)來(lái),通過(guò)注入的方式來(lái)使用,從而達(dá)到解耦的目的。

一個(gè)數(shù)據(jù)庫(kù)連接類(lèi):

class Mysql{
 private $host;
 private $prot;
 private $username;
 private $password;
 private $db_name;
 // 構(gòu)造方法
 public function __construct(){
   $this->host = '127.0.0.1';
   $this->port = 22;
   $this->username = 'root';
   $this->password = '';
   $this->db_name = 'my_db';
 }
 // 連接
 public function connect(){
   return mysqli_connect($this->host,$this->username,$this->password,$this->db_name,$this->port);
 }
}

使用這個(gè)類(lèi):

$db = new Mysql();
$db->connect();

通常數(shù)據(jù)庫(kù)連接類(lèi)應(yīng)該設(shè)計(jì)為單列,這里先不要搞復(fù)雜了。

依賴(lài)注入

顯然,數(shù)據(jù)庫(kù)的配置是可以更換的部分,因此我們需要先把它拎出來(lái):

class MysqlConfiguration{
  private $host;
  private $prot;
  private $username;
  private $password;
  private $db_name;
  public function __construct($host,$port,$username,$password,$db_name){
    $this->host = $host;
    $this->port = $port;
    $this->username = $username;
    $this->password = $password;
    $this->db_name = $db_name;
  }
  public function getHost(){
    return $this->host;
  }
  public function getPort(){
    return $this->port();
  }
  public function getUsername(){
    return $this->username;
  }
  public function getPassword(){
    return $this->password;
  }
  public function getDbName(){
    return $this->db_name;
  }
}

然后不可替換的部分這樣:

class Mysql{
 private $configuration;
 public function __construct($config){
   $this->configuration = $config;
 }
 // 連接
 public function connect(){
   return mysqli_connect($this->configuration->getHost(),$this->configuration->getUsername(),$this->configuration->getPassword(),$this->configuration->getDbName(),$this->configuration->getPort());
 }
}

這樣就完成了配置文件和連接邏輯的分離。

使用

$config = new MysqlConfiguration('127.0.0.1','root','password','my_db',22);
// $config是注入Mysql的,這就是所謂的依賴(lài)注入
$db = new Mysql($config);
$db->connect();

更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專(zhuān)題:《php面向?qū)ο蟪绦蛟O(shè)計(jì)入門(mén)教程》、《PHP數(shù)組(Array)操作技巧大全》、《PHP基本語(yǔ)法入門(mén)教程》、《PHP運(yùn)算與運(yùn)算符用法總結(jié)》、《php字符串(string)用法總結(jié)》、《php+mysql數(shù)據(jù)庫(kù)操作入門(mén)教程》及《php常見(jiàn)數(shù)據(jù)庫(kù)操作技巧匯總》

希望本文所述對(duì)大家PHP程序設(shè)計(jì)有所幫助。

您可能感興趣的文章:
  • 淺析PHP類(lèi)的反射來(lái)實(shí)現(xiàn)依賴(lài)注入過(guò)程
  • PHP基于反射機(jī)制實(shí)現(xiàn)自動(dòng)依賴(lài)注入的方法詳解
  • PHP依賴(lài)注入(DI)和控制反轉(zhuǎn)(IoC)詳解
  • php中Ioc(控制反轉(zhuǎn))和Di(依賴(lài)注入)
  • PHP控制反轉(zhuǎn)(IOC)和依賴(lài)注入(DI)
  • 對(duì)PHP依賴(lài)注入的理解實(shí)例分析
  • 理解php依賴(lài)注入和控制反轉(zhuǎn)
  • 詳解PHP設(shè)計(jì)模式之依賴(lài)注入模式

標(biāo)簽:巴彥淖爾 重慶 臨沂 十堰 衡陽(yáng) 鷹潭 麗江 銅陵

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《PHP經(jīng)典設(shè)計(jì)模式之依賴(lài)注入定義與用法詳解》,本文關(guān)鍵詞  PHP,經(jīng)典,設(shè)計(jì)模式,之,依賴(lài),;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《PHP經(jīng)典設(shè)計(jì)模式之依賴(lài)注入定義與用法詳解》相關(guān)的同類(lèi)信息!
  • 本頁(yè)收集關(guān)于PHP經(jīng)典設(shè)計(jì)模式之依賴(lài)注入定義與用法詳解的相關(guān)信息資訊供網(wǎng)民參考!
  • 企业400电话

    智能AI客服机器人
    15000

    在线订购

    合计11份范本:公司章程+合伙协议+出资协议+合作协议+股权转让协议+增资扩股协议+股权激励+股东会决议+董事会决议

    推薦文章