/** * {@inheritDoc} */ public function find($storageName, $key) { $where = []; foreach ($key as $name => $value) { $where[] = $name . ' = ?'; } $stmt = $this->session->prepare('SELECT * FROM ' . $storageName . ' WHERE ' . implode(' AND ', $where)); $options = new ExecutionOptions(['arguments' => array_values($key)]); $result = $this->session->execute($stmt, $options); $rows = iterator_to_array($result); if (!isset($rows[0])) { throw new NotFoundException(); } $data = []; foreach ($rows[0] as $column => $value) { if (isset($key[$column])) { continue; } $data[$column] = $value; } return $data; }