addArticle( "Satz des Pythagoras", "Der Satz des Pythagoras wurde von dem griechischen Philosophen Pythagoras von Samos formuliert und im dritten Jahrhundert vor Christus veröffentlicht. In der beigefügten Abbildung sehen wir ein rechtwinkliges Dreieck...", "max.mustermann", "Mathe", "Dreiecke, Dreiecksseiten berechnen" ); self::$instance->addArticle( "Tunneleffekt", "Der Tunneleffekt ist ein quantenmechanisches Phänomen, bei dem Teilchen...", "max.mustermann", "Physik", "Quantenphysik, Energie" ); self::$instance->addArticle( "Datenschutz vs Datensicherheit", "Datenschutz ist in unserer digital vernetzten Welt allgegenwärtig...", "max.mustermann", "Informatik", "Daten, DSGVO" ); } return self::$instance; } /** * Speichert alle Artikel/Beiträge in der Datei. * @param $articles * @return void */ public function saveArticle($articles) { file_put_contents( $this->file, json_encode($articles, JSON_PRETTY_PRINT) ); } public function addArticle($title, $content, $author, $category, $tags) { $articles = $this->getAllArticles(); $articles[] = [ "id" => count($articles)+1, "title" => $title, "content" => $content, "author" => $author, "category" => $category, "tags" => $tags, "creationDate" => date("Y-m-d H:i:s") ]; $this->saveArticle($articles); } public function updateArticle($id, $title, $content, $author) { // TODO: Implement updateArticle() method. } public function deleteArticle($id) { // TODO: Implement deleteArticle() method. } public function getArticle($id) { $articles = $this->getAllArticles(); foreach ($articles as $article) { if (isset($article['id']) && $article['id'] == $id) { return new Article(intval($article['id']), $article['title'], $article['content'], $article['author'], $article['category'], $article['tags'], $article['creationDate']); } } return null; } public function getAllArticles(): array { if (!file_exists($this->file)) { return []; } $json = file_get_contents($this->file); $articles = json_decode($json, true); return is_array($articles) ? $articles : []; } } ?>