色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

opencar php版本

傅智翔1年前9瀏覽0評論

OPENCART——一款用PHP編寫的開源電子商務系統,使用MVC設計模式。

作為一名電子商務從業者,相信您一定了解其對于商家的巨大意義。但是眾所周知,對于一個網站來說,不光是外在的美觀,還有著簡介的系統設計和良好的性能表現。

在這里,我們將探討一下,您可能已經了解或是想要了解的:OPENCART的PHP版本的一些特性。就拿其設計模式中的MODEL來說:

db->query("INSERT INTO " . DB_PREFIX . "product SET ...");
...
}
public function editProduct($product_id, $data) {
$this->db->query("UPDATE " . DB_PREFIX . "product SET ...");
...
}
public function deleteProduct($product_id) {
$this->db->query("DELETE FROM " . DB_PREFIX . "product WHERE...");
...
}
	}
?>

通過觀察以上代碼,我們可以發現,OPENCART采用了比較好的設計模式,采用了MVC設計模式,同時將MODEL從控制器中單獨分離出來,使得MODEL可以在多個控制器之間共用或者擴展。

但是,這些似乎不是你所期望的答案。所以,讓我們再深入一些。接下來,我們將介紹數據庫層面的角色,這是OPENCART的另一個PHP亮點:

mysqli = new \mysqli($hostname, $username, $password, $database, $port);
if ($this->mysqli->connect_error){
throw new \Exception('Error: Could not connect to database: ' . $this->mysqli->connect_error . 'ErrorCode:' . $this->mysqli->connect_errno);
}
$this->mysqli->query("SET NAMES 'utf8mb4'");
$this->mysqli->query("SET CHARACTER SET utf8mb4");
$this->mysqli->query("SET CHARACTER_SET_CONNECTION=utf8mb4");
$this->mysqli->query("SET SQL_MODE = ''");
}
public function query($sql) {
$re = $this->mysqli->query($sql . " \n");
$result_array = array();
if ($re){
if ($re->num_rows >0){
while ($result = $re->fetch_assoc()){
$result_array[] = $result;
}
}
$re->close();
}
return $result_array;
}
...
?>

不同于很多Web開發框架,OPENCART使用了mysqli進行封裝數據庫操作,從而實現了豐富的查詢。其提供了基礎的CURD操作以及過濾和限制等擴展功能。

但是,似乎還是有點不夠明確,所以,我們再來一個例子。這里我們來演示一個類似電商商品購買場景下的數據庫操作,比如獲取購物車信息:

db->query("SELECT * FROM " . DB_PREFIX . "cart WHERE customer_id = '" . (int)$customer_id . "' AND recurring_id = '0' ORDER BY cart_id ASC");
$cart = array();
foreach ($query->rows as $result) {
$option_data = array();
$option_query = $this->db->query("SELECT * FROM " . DB_PREFIX . "cart_option WHERE cart_id = '" . (int)$result['cart_id'] . "'");
foreach ($option_query->rows as $option) {
$option_info = $this->getOptionInfo($option['product_option_id'], $option['product_option_value_id']);
if ($option_info) {
$option_data[] = array(
'cart_option_id'       =>$option['cart_option_id'],
'product_option_id'    =>$option['product_option_id'],
'product_option_value_id' =>$option['product_option_value_id'],
'option_id'            =>$option_info['option_id'],
'option_value_id'      =>$option_info['option_value_id'],
'name'                 =>$option_info['name'],
'value'                =>$option_info['value'],
'type'                 =>$option_info['type']
);
}
}
$product_info = $this->getProduct($result['product_id']);
if ($product_info) {
$cart[$result['cart_id']] = array(
'cart_id'         =>$result['cart_id'],
'product_id'      =>$result['product_id'],
'name'            =>$product_info['name'],
'model'           =>$product_info['model'],
'quantity'        =>$result['quantity'],
'stock'           =>$product_info['quantity'],
'image'           =>$product_info['image'],
'option'          =>$option_data,
'price'           =>($result['price'] + $this->option->getProductOptionPrice($result['product_id'], $option_data)),
'total'           =>($result['price'] + $this->option->getProductOptionPrice($result['product_id'], $option_data)) * $result['quantity'],
'reward'          =>$product_info['reward'],
'points'          =>($product_info['points'] ? ($product_info['points'] * $result['quantity']) : 0),
'tax_class_id'    =>$product_info['tax_class_id'],
'date_added'      =>$result['date_added']
);
}
}
return $cart;
}
	}
?>

從查詢語句來看,其具有非常良好的可讀性,并且提供了可擴展的設計,以滿足不同的需求,而這就是PHP版本下的OPENCART對于商家的最大幫助。同時,其采用的mysqli封裝數據庫操作是很多Web開發者首選的模塊,更為可靠。

希望這篇文章對您了解OPENCART的PHP版本有所幫助。