10.07.2015 Aufrufe

5.15 Objektorientierte Webentwicklung - valentinkoch.de

5.15 Objektorientierte Webentwicklung - valentinkoch.de

5.15 Objektorientierte Webentwicklung - valentinkoch.de

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

$daten = $abfrage->fetchAll();$eintragMapper = new EintragMapper($this->db);$kategorien = array();foreach ($daten as $d) {$kat = new Kategorie();$kat->setId($d['id']);$kat->setName($d['name']);$kat->setSauber();}$eintraege = $eintragMapper->fin<strong>de</strong>NachKategorie($kat);foreach ($eintraege as $eintrag) {$kat->addEintrag($eintrag);}$kategorien[] = $kat;}return $kategorien;public function speichere(Kategorie $kategorie){/** Nur wenn Daten in $kategorie verän<strong>de</strong>rt wur<strong>de</strong>n, soll <strong>de</strong>r* Speicher-Vorgang auch wirklich ausgeführt wer<strong>de</strong>n.*/if (! $kategorie->istSauber()) {if ($kategorie->istNeu()) {$this->insert($kategorie);} else {$this->update($kategorie);}$kategorie->setSauber();}}/** Es wer<strong>de</strong>n nun ebenfalls alle Einträge gespeichert,* falls sich dort etwas geän<strong>de</strong>rt hat.*/$eintragMapper = new EintragMapper($this->db);foreach ($kategorie->getEintraege() as $eintrag) {$eintragMapper->speichere($eintrag);}public function insert(Kategorie $kategorie){$sql = 'INSERT INTO kategorien (name) VALUES (?)';$abfrage = $this->db->prepare($sql);$abfrage->execute(array($kategorie->getName()));$kategorie->setId($this->db->lastInsertId());}public function update(Kategorie $kategorie){$sql = 'UPDATE kategorien SET name=?';$abfrage = $this->db->prepare($sql);$abfrage->execute(array($kategorie->getName()));}public function loesche(Kategorie $kategorie){/** Bevor eine Kategorie gelöscht wer<strong>de</strong>n darf, müssen erst* alle Einträge gelöscht wer<strong>de</strong>n. Ansonsten wür<strong>de</strong>n die* Beziehungen zwischen <strong>de</strong>n Tabellen brechen.*/$eintragMapper = new EintragMapper($this->db);foreach ($kategorie->getEintraege() as $eintrag) {$eintragMapper->loesche($eintrag);}$sql = 'DELETE FROM kategorien WHERE id=?';

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!