public function add(Boek $boek) { $boekenstore = new JsonBoekenStore(); $boeken = $boekenstore->retreive(); if (is_numeric($boek->getId()) && array_key_exists($boek->getId(), $boeken)) { $boeken[$boek->getId()] = $boek; } else { $nieuweIndex = 0; if (count($boeken)) { $nieuweIndex = max(array_keys($boeken)) + 1; } $boek->setId($nieuweIndex); $boeken[$nieuweIndex] = $boek; } $boekenstore->store($boeken); }
/** * @return Boek[] * @throws Exception */ public function retreive() { if (Storage::exists($this->database)) { $objectedBoeken = json_decode(Storage::get($this->database)); if ($objectedBoeken || is_array($objectedBoeken)) { $boeken = []; foreach ($objectedBoeken as $boekObject) { $boek = new Boek(); $boek->setId($boekObject->id)->setIsbn($boekObject->isbn)->setTitel($boekObject->titel)->setGewicht((int) $boekObject->gewicht)->setIntroductie($boekObject->introductie); $boeken[$boek->getId()] = $boek; } return $boeken; } else { throw new Exception('Database error: wrong file format'); } } return []; }