Files
webprogrammierung/php/model/LocalArticleManager.php
T
niklas.ortmann 306b9e8152 Dummy-Beiträge
Beim Instanziieren des ArticleManagers werden drei Dummy-Beiträge erstellt.
2026-05-29 09:43:39 +02:00

116 lines
4.8 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?php
require_once 'ArticleManagerDAO.php';
require_once 'Article.php';
/**
* Klasse: Eine lokale Lösung des ArticleManagerDAO.
* Schreibt zunächst Daten lokal in das Verzeichnis und kann diese wieder auslesen.
*
* @author Niklas Ortmann
*/
class LocalArticleManager implements ArticleManagerDAO {
private $file = '../../data/articles.json';
private static $instance = null;
/**
* Gibt die LocalArticleManager-Instanz zurück.
* @return LocalArticleManager
*/
public static function getInstance()
{
if (self::$instance == null) {
self::$instance = new LocalArticleManager();
}
// Dummy-Beiträge:
self::$instance->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, dessen drei Seiten die Längen a, b und c
besitzen. Auf jeder Seite ist ein Quadrat konstruiert. Das Quadrat auf der Seite a hat die Fläche a2, das
Quadrat auf der Seite b hat die Fläche b2 und das Quadrat auf der Seite c hat die Fläche c2. Der Satz des
Pythagoras besagt, dass die Summe der Flächen der beiden kleineren Quadrate gleich der Fläche des größten
Quadrats ist. Das bedeutet, dass a^2+b^2=c^2 (Satz des Pythagoras).", "max.mustermann", "Mathe", "Dreiecke, Dreiecksseiten berechnen");
self::$instance->addArticle("Tunneleffekt", "Der Tunneleffekt ist ein quantenmechanisches Phänomen, bei dem Teilchen vor allem Elektronen eine
Energiebarriere überwinden können, obwohl sie nach den Regeln der klassischen Physik nicht genügend Energie
dafür besitzen. In der klassischen Vorstellung müsste ein Elektron entweder genügend Energie haben, um über
eine Barriere zu „springen“, oder es würde vollständig zurückgeworfen. In der Quantenphysik wird ein Elektron
jedoch nicht als punktförmiges Teilchen beschrieben, sondern als Wellenfunktion, die sich räumlich ausdehnt.
Dadurch besteht eine endliche Wahrscheinlichkeit, dass sich das Elektron auf der anderen Seite einer Barriere
befindet (Griffiths & Schroeter, 2018).", "max.mustermann", "Physik", "Quantenphysik, Energie");
self::$instance->addArticle("Datenschutz vs Datensicherheit", "Datenschutz ist in unserer digital vernetzten Welt allgegenwärtig ob in sozialen Netzwerken, beim
Online-Shopping oder dem Einsatz von Bonuskarten, bei der Auswertung von Konsumverhalten und selbstverständlich
auch im schulischen Kontext. Was ist Datenschutz? Datenschutz bedeutet, dass persönliche Daten nur gesammelt, gespeichert und verwendet werden dürfen, wenn
es wirklich nötig ist und nur für klar festgelegte Zwecke. Es geht darum, die Privatsphäre von Menschen
zu schützen.Was ist Datensicherheit? Datensicherheit umfasst alle technischen und organisatorischen Maßnahmen, die verhindern sollen, dass Daten
verloren gehen, beschädigt oder unbemerkt verändert werden. Sie schützt Informationen vor Missbrauch.", "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 $article;
}
}
return null;
}
public function getAllArticles()
{
if (!file_exists($this->file)) {
return [];
}
$json = file_get_contents($this->file);
$articles = json_decode($json, true);
return is_array($articles) ? $articles : [];
}
}
?>