Я ищу способ предотвратить повторные вызовы в базу данных, если рассматриваемый элемент уже был загружен ранее. Причина в том, что у нас много разных областей, в которых отображаются популярные элементы, последние выпуски, рейтинг и т. Д., И иногда случается, что один элемент появляется в нескольких списках на одной странице.
Интересно, можно ли сохранить экземпляр объекта в статическом массиве, связанном с классом, а затем проверить, действительно ли там уже есть данные, но тогда как мне указать новый экземпляр на существующий?
Вот черновик моей идеи:
$baseball = new Item($idOfTheBaseballItem);
$baseballAgain = new Item($idOfTheBaseballItem);
class Item
{
static $arrItems = array();
function __construct($id) {
if(in_array($id, self::arrItems)){
// Point this instance to the object in self::arrItems[$id]
// But how?
}
else {
// Call the database
self::arrItems[id] = $this;
}
}
}
Если у вас есть другие идеи или вы просто думаете, что я совершенно чокнутый, дайте мне знать.