/** * Save task in file * @param Task $task * @return $this */ private function save_task(Task $task) { return $this->save_array($task->to_array()); }
/** * Modify task in queue * @param Task $task * @param bool $need_commit Transaction commit required * @return bool */ public function modify_task(Task $task, $need_commit = false) { $task_array = $task->to_array(true); if (count($task_array) > 1) { $update_statement = implode(",", array_filter(array_map(function ($entity) { if ($entity == TaskConst::ID) { return null; } return $entity . "=:" . $entity; }, array_keys($task_array)))); $query = $this->connection->prepare("UPDATE {$this->table_name} SET {$update_statement} where id = :id"); $query->execute($task_array); } if ($need_commit) { $this->connection->commit(); } return $this; }