//МОДЕЛЬ
class Product{
private $conn;
private $item_diff;
public function __construct($db,$item_diff){
$this->conn = $db;
$this->item_diff = $item_diff;
}
public function read(){
//в метод приходит id товара
$id = $this->id;
//Запрос в БД - получаю массив параметров товара
//....
$product = 'результат запроса';
//массив параметров товара присваиваю переменной item_diff
$this->item_diff['read'] = $product;
return $product;
}
public function update(){
//в метод приходит массив параметров из формы
$update_data = $this->update_data;
//этот же массив присваиваю переменной item_diff
$this->item_diff['upd'] = $update_data;
//далее запрос в БД на апдейт
//...
}
public function logs(){
//в этом методе хочу получить переменную item_diff
$res = array();
if($this->item_diff) $res = $this->item_diff;
return $res;
}
}
//КОНТРОЛЛЕР
$item_diff = array();
$product= new Product($db,$item_diff);
$product->id = $product_id;
//получаю товарный массив для генерирования формы
$form = $product->read();
//генерирую форму с подставленными значениями из БД
//...$form -> html
//менеджер меняет какие-то параметры и отправляет форму, в контроллер с формы приходит массив $form_data
//отправляю массив $form_data в модель для апдейта
$product->update_data = $form_data;
$product->update();
//далее хочу получить оба массива, чтобы сравнить и записать измененные поля в логи
$logs = $product->logs();
//но здесь только item_diff['upd']