我的问题是:如果我根据 MySQL 中的数据在 PHP 中创建对象,我不是双重存储数据,因此浪费资源并减慢我的应用程序吗?
- 人们是否只是为了将 MySQL 数据缓存为允许更快访问的对象,因为用户每次切换到新产品时都不会查询数据库?
- 他们只是为不太复杂的代码做这件事吗?
- 在小型 MVC 中处理此问题的适当方法是什么?即在会话开始时,模型是否应该创建一个包含所有产品的数组?不应该有所有产品的数组,每次都询问数据库并将这些数据转换为新的产品对象吗?
如果您愿意,可以继续阅读我为什么要问...
我知道这对我的应用程序的大小并不重要,但我想正确地开始它。我制作了一个基本的小 MVC 和一个我们称之为产品的项目数据库。为了方便起见,只是试图决定是否/何时/何处从 MySQL 数据到 PHP 对象。
这就是我的文件树的样子:
root
controller
Controller.php
model
Model.php
Product.php
view
Products.php
Product.php
index.php
以下是相关代码:
// Controller.php
if (!isset($_GET['product'])) {
- getProducts() && include view/Products
} else {
- getProduct('product') && include view/Product
}
// Model.php
getProducts() {
while($row = $stmt->fetch_assoc()) {
$array[$i] = new Product($row["id"], $row["name"], $row["price"]);
$i++;
}
return $array;
}
getProduct($id) {
$allProducts = $this->getProducts();
return $allProducts[$id];
}
// Products view
<?php foreach ($products as $product): ?>
display $product->id and $product->name
<?php endforeach; ?>
// Product view
display $product->name and $product->description and $product->price ...