校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > PHP經典設計模式之依賴注入定義與用法詳解

PHP經典設計模式之依賴注入定義與用法詳解

熱門標簽:余姚電話機器人 廣東廣州在怎么申請400電話 咸寧銷售電銷機器人系統 電銷機器人問門薩維品牌my 開發地圖標注類網站 外呼系統能給企業帶來哪些好處 百度地圖怎樣標注圖標 百度地圖標注偏差 400電話蘭州申請請

本文實例講述了PHP經典設計模式之依賴注入定義與用法。分享給大家供大家參考,具體如下:

依賴注入的實質就是把一個類不可能更換的部分可更換的部分分離開來,通過注入的方式來使用,從而達到解耦的目的。

一個數據庫連接類:

class Mysql{
 private $host;
 private $prot;
 private $username;
 private $password;
 private $db_name;
 // 構造方法
 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);
 }
}

使用這個類:

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

通常數據庫連接類應該設計為單列,這里先不要搞復雜了。

依賴注入

顯然,數據庫的配置是可以更換的部分,因此我們需要先把它拎出來:

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的,這就是所謂的依賴注入
$db = new Mysql($config);
$db->connect();

更多關于PHP相關內容感興趣的讀者可查看本站專題:《php面向對象程序設計入門教程》、《PHP數組(Array)操作技巧大全》、《PHP基本語法入門教程》、《PHP運算與運算符用法總結》、《php字符串(string)用法總結》、《php+mysql數據庫操作入門教程》及《php常見數據庫操作技巧匯總》

希望本文所述對大家PHP程序設計有所幫助。

您可能感興趣的文章:
  • 淺析PHP類的反射來實現依賴注入過程
  • PHP基于反射機制實現自動依賴注入的方法詳解
  • PHP依賴注入(DI)和控制反轉(IoC)詳解
  • php中Ioc(控制反轉)和Di(依賴注入)
  • PHP控制反轉(IOC)和依賴注入(DI)
  • 對PHP依賴注入的理解實例分析
  • 理解php依賴注入和控制反轉
  • 詳解PHP設計模式之依賴注入模式

標簽:巴彥淖爾 重慶 臨沂 十堰 衡陽 鷹潭 麗江 銅陵

巨人網絡通訊聲明:本文標題《PHP經典設計模式之依賴注入定義與用法詳解》,本文關鍵詞  PHP,經典,設計模式,之,依賴,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《PHP經典設計模式之依賴注入定義與用法詳解》相關的同類信息!
  • 本頁收集關于PHP經典設計模式之依賴注入定義與用法詳解的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 三明市| 南宫市| 丰镇市| 铜陵市| 沂水县| 潞西市| 五大连池市| 珲春市| 南阳市| 盐亭县| 陆良县| 东阳市| 灵丘县| 乌拉特后旗| 余姚市| 汉川市| 汉阴县| 渝中区| 五家渠市| 石台县| 兴安盟| 化州市| 黔东| 板桥市| 南安市| 贡山| 金乡县| 康保县| 沈阳市| 佛冈县| 宜兴市| 沂南县| 朝阳区| 安徽省| 镇江市| 万山特区| 威信县| 康马县| 城步| 嘉鱼县| 新余市|