我一直在想這個幾個星期。我的代碼實踐是創建幾個類(插入,更新,刪除等),然後在其中創建函數。PHP實踐更好的代碼
的問題是,每一個功能我做這樣的事情:
public function clients(){
$db = new mysqli($this->host, $this->user, $this->pass, $this->db);
if ($db->connect_errno) {
printf("Connecting error" . $db->connect_error);
return false;
exit();
}
$db->set_charset("utf8");
$visibile = true;
$query = $db->prepare("SELECT * FROM clients WHERE visible = ?");
$query->bind_param("i", $visible);
$query->execute();
$query->bind_result($id, $name, $address, $photo);
$query->store_result();
$rows = array();
while($query->fetch()){
$rows[] = array("id" => $id, "name" => $name, "address" => $address, "photo" => $photo);
}
$query->close();
$db->close();
return $rows;
}
我一直在想減少這種code..at至少在每個函數的開始連接。
// currently call
include_once('select.php');
$select = new select();
$rows = $select->clients();
更好的東西會
$select = new select();
$rows = $select->connect()->clients();
甚至更好
$rows = $connect->select()->clients();
我知道這是可能的,我只是不知道怎麼辦。或者甚至有比這更好的方法?
有類的名字是動詞是你奇怪的事情構建一個明確的標誌。你在「選擇」和「更新」中封裝了哪些數據和方法? – geoffspear
Seconding @Wooble。你的班級結構當然很奇怪,但讓你開始DI原則將是一個很好的第一步。 – deceze
爲什麼那麼奇怪?比'$ variable-> insert_clients()'更容易閱讀'$ select-> clients()'和'$ insert-> clients($ name)'。 – user3243925