refactoring

This commit is contained in:
NOrtmann1
2026-05-26 18:06:44 +02:00
parent c7f279b7e9
commit 8762bc1b07
6 changed files with 17 additions and 30 deletions
+2 -2
View File
@@ -3,8 +3,8 @@
Inhalt: Formular für die Erstellung eines neuen Beitrags Inhalt: Formular für die Erstellung eines neuen Beitrags
--> -->
<?php <?php
include_once 'php/model/DatabaseDAO.php'; include_once 'php/model/ArticleManagerDAO.php';
include_once 'php/model/FileDatabase.php'; include_once 'php/model/ArticleManager.php';
if(isset($_POST['post-title']) && isset($_POST['post-content']) && isset($_POST['post-category'])) { if(isset($_POST['post-title']) && isset($_POST['post-content']) && isset($_POST['post-category'])) {
+1 -1
View File
@@ -2,7 +2,7 @@
try { try {
//$db = Database::getInstance(); //$db = Database::getInstance();
$db = new FileDatabase(); $db = new ArticleManager();
$author = "max.mustermann@web.de"; // wird später aus session bezogen. $author = "max.mustermann@web.de"; // wird später aus session bezogen.
$db->newArticle($_POST['post-title'], $_POST['post-content'], $author); $db->newArticle($_POST['post-title'], $_POST['post-content'], $author);
} catch (PDOException $e) { } catch (PDOException $e) {
+1 -1
View File
@@ -1,5 +1,5 @@
<?php <?php
require_once 'php/model/FileDatabase.php'; require_once 'php/model/ArticleManager.php';
require_once 'php/model/Article.php'; require_once 'php/model/Article.php';
@@ -1,19 +1,19 @@
<?php <?php
require_once 'DatabaseDAO.php'; require_once 'ArticleManagerDAO.php';
/* /*
* Klasse: Eine lokale Lösung der DatenbankDAO. * Klasse: Eine lokale Lösung der DatenbankDAO.
* schreibt zunächst Daten lokal in das Verzeichnis und kann diese wieder auslesen. * schreibt zunächst Daten lokal in das Verzeichnis und kann diese wieder auslesen.
* *
* @author Niklas Ortmann * @author Niklas Ortmann
*/ */
class FileDatabase implements DatabaseDAO { class ArticleManager implements ArticleManagerDAO {
/* /*
* Gibt die Datenbank-Instanz zurück. * Gibt die Datenbank-Instanz zurück.
*/ */
public static function getInstance() public static function getInstance()
{ {
if (self::$instance == null) { if (self::$instance == null) {
self::$instance = new FileDatabase(); self::$instance = new ArticleManager();
} }
return self::$instance; return self::$instance;
@@ -29,12 +29,13 @@ class FileDatabase implements DatabaseDAO {
} }
public function newArticle($title, $content, $author) { public function newArticle($title, $content, $author, $category) {
$newData = array( $newData = array(
"title" => $title, "title" => $title,
"content" => $content, "content" => $content,
"author" => $author, "author" => $author,
"email" => $_POST["Email"], "category" => $category,
//"tags" => isset($_POST["tags"]) ? $_POST["tags"] : '', TODO: Später hinzufügen
"date" => date("d.m.Y, H:i") "date" => date("d.m.Y, H:i")
); );
$newData = base64_encode(serialize($newData)); $newData = base64_encode(serialize($newData));
@@ -5,18 +5,20 @@
* @author Niklas Ortmann * @author Niklas Ortmann
*/ */
interface DatabaseDAO interface ArticleManagerDAO
{ {
/* /*
* Ein angemeldeter Nutzer erstellt einen neuen Beitrag. * Ein angemeldeter Nutzer erstellt einen neuen Beitrag.
* $title Titel des Beitrags * $title Titel des Beitrags
* $content Der Inhalt des Beitrags * $content Der Inhalt des Beitrags
* $author dem Author des des Beitrags (NID oder email) * $author dem Author des des Beitrags (NID oder email)
* $category Kategorie des Beitrags
* $tags optionale Schlagworte für eine bessere Suche
* *
* Mögliche Exceptions: * Mögliche Exceptions:
* TODO Fehlerbeschreibung hinzufügen * TODO Fehlerbeschreibung hinzufügen
*/ */
public function newArticle($title, $content, $author); public function newArticle($title, $content, $author, $category);
/* /*
* Ein angemeldeter Nutzer bearbeitet einen Beitrag. * Ein angemeldeter Nutzer bearbeitet einen Beitrag.
-16
View File
@@ -1,16 +0,0 @@
<?php
/*
* Die Klasse dient als Brücke zwischen der Implementierung des DatenbankDAO und der Geschäftslogik.
* Hier kann später die FileDatabase durch die SQL_Database ausgetauscht werden.
* @author Niklas Ortmann
*/
class Database
{
/*
* Gibt die Database-Instanz zurück.
*/
public static function getInstance()
{
return FileDatabase::getInstance(); // TODO: wird später durch echte DB ausgetauscht.
}
}