file = 'data/articles.json'; } /** * Gibt die LocalArticleManager-Instanz zurück. * @return LocalArticleManager */ public static function getInstance() { if (self::$instance == null) { self::$instance = new LocalArticleManager(); } 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" => 1, //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 : []; } } ?>