2016-12-31 13 views
0

DbConnectクラスを呼び出して、FormElementクラスのような別のクラスで使用するにはどうすればよいですか?別のクラスから接続クラスを呼び出すにはどうすればよいですか?

main.class.php

class DBCONNECT 
{ 
    public $dbConnection; 

    public function __construct($dbHost, $dbUsername, $dbPassword, $dbName){ 

     $this->dbConnection = new mysqli($dbHost, $dbUsername, $dbPassword, $dbName); 

     if($this->dbConnection->error){ 
      trigger_error("Sorry couldn't connect to database :("); // problem connect to database 
     }else{ 
      return true; // connection successfully 
     } 
    } 
} 

、私の別のクラスはelement.class.php

class FormElement 
{ 
    public function getCmbPovinsi(){ 
    $userSqlQuery = "SELECT id,provinsi FROM aud_provinsi ORDER BY provinsi"; 
    $userSys  = $this->dbConnection->query($userSqlQuery) or die($this->dbConnection->error); 

    if ($userSys) { 
     /* checking for available users */ 
     if($userSys->num_rows > 0){ 
      echo'<div class="col_one_fourth"> 
        <label for="provinsi">Provinsi<small>*</small></label> 
         <select id="provinsi" name="provinsi" class="sm-form-control required"> 
          <option value="">-- Pilih Provinsi --</option>'; 

        while ($userResult = $userSys->fetch_assoc()) { 
         echo '<option value="'.$userResult['id'].'">'.$userResult['provinsi'].'</option>';   
        } 
        echo '</select> 
       </div>'; 
     }else{ 
      echo "Error Handling!!"; 
     } 
    }else{ 
     echo "invalid query : ".$this->dbConnection->error."<br>"; 
     echo "whole query : ".$userQuery ."<br>"; 
    }    
    } 
} 

だったとどのようにこのコードができます職業y?

+0

スタート:あなたは要素を使用する場合今、あなたは、このようなオブジェクトを作成することができますか?_what _依存性注入で – Federkun

答えて

1

element.class.phpには、まずmain.class.php PATHが必要です。このメソッドは、依存性注入と呼ばれる#

require 'main.class.php'; 

class FormElement 
{ 
    protected $connection; 

    public function __construct(DBCONNECT $connection) 
    { 
    $this->connection = $connection; 
    } 

    public function getCmbPovinsi() 
    { 
    ... 
    $this->connection->query(...); 
    } 

} 

element.clas.php

#。

$element = new FormElement(new DBCONNECT("host", "username", "password", "db")); 

+0

が、私は、エラー解析が「未定義のメソッドDBCONNECTに呼び出し::クエリ()」何かを持って、この問題の例をいくつか教えてください。ありがとうございました –

+0

今、すべてのDBCONNECTメソッドを検索してクエリメソッドを検索し、見つからない場合はエラーをスローします。 DBCONNECTION内で問合せメソッドを定義して、ジョブを実行できます。 –

+0

explaination @hamedありがとうございました:) –

関連する問題