generated from leonetienne/LaTeX-Paper-template
feat: feedback mama nochmal
This commit is contained in:
@@ -2,16 +2,18 @@
|
||||
\label{chap:umsetzung}
|
||||
Infolge der Anforderungsanalyse befasst sich das Kapitel \enquote{Konzeption und Umsetzung}
|
||||
mit der Implementation der Anforderungen in dem
|
||||
Brown-Field Projekt \cite{bib:schwarzer-vorlesung-swa} in Form einer TYPO3-Erweiterung.
|
||||
Brown-Field Projekt \cite{bib:schwarzer-vorlesung-swa} in Form einer TYPO3-\break{}Erweiterung.
|
||||
Es ist anzumerken, dass das aus \fullref{chap:anforderungserfassung} hervorgehende Pflichtenheft im Rahmen geplanter und
|
||||
opportunistischer Gespräche mit dem \ac{PO} geringfügige Änderungen erfahren wird.
|
||||
|
||||
\section{Setup der TYPO3-Erweiterung}
|
||||
TYPO3-Erweiterungen werden via Composer installiert \break\cite{bib:typo3-docs-managing-extensions}.
|
||||
TYPO3-Erweiterungen werden via Composer installiert
|
||||
\break\cite{bib:typo3-docs-managing-extensions}.
|
||||
Um eine TYPO3-Erweiterung zu erstellen, muss also ein Composer-Paket erstellt werden.
|
||||
Um vermeidbare Komplexität zu verhindern, wird das Composer-Paket, welches die hier betrachtete
|
||||
TYPO3-Erweiterung darstellt, lokal in den versionierten Ordner \enquote{packages} gelegt.
|
||||
Dieses Verzeichnis wird als Quelle für Composer-Pakete in der
|
||||
Dieses Verzeichnis wird als Quelle für
|
||||
\break{}Composer-Pakete in der
|
||||
Haupt-composer.json-Datei hinterlegt.
|
||||
Somit wird ein Composer-Paket nur für dieses Projekt bereitgestellt,
|
||||
ohne den Aufwand zu betreiben, der üblicherweise mit dem Bereitstellen eines Paketes einhergeht.
|
||||
@@ -45,12 +47,12 @@ vier Komponenten:
|
||||
\end{description}
|
||||
\cite{bib:typo3-docs-extbase-reference}.
|
||||
|
||||
Im Folgenden wurde ein semiformales Diagramm der Objekte und ihren Relationen
|
||||
Im Folgenden wird ein semiformales Diagramm der Objekte und ihren Relationen
|
||||
angefertigt und in Rücksprache mit dem \ac{PO} finalisiert.
|
||||
|
||||
\begin{nicepic}
|
||||
\includegraphics[width=1\textwidth]{images/objektrelationen-weinlandmosel-einlieferungswerkzeug.png}
|
||||
\captionof{figure}{Objektrelationen: Weinland Mosel Einlieferungswerkzeug, Quelle: Eigene Darstellung}
|
||||
\captionof{figure}{Objektrelationen: Weinland Mosel Jahresauswahlprobenwerkzeug, Quelle: Eigene Darstellung}
|
||||
\label{fig:objektrelationen}
|
||||
\end{nicepic}
|
||||
|
||||
@@ -58,7 +60,7 @@ Nachdem in Erfahrung gebracht wird, welche konkreten Datenobjekte benötigt werd
|
||||
werden Attribute dieser Objekte dem Pflichtenheft entnommen. Diese werden in einem
|
||||
formalen Klassendiagramm festgehalten und in Rücksprache mit dem \ac{PO}
|
||||
weiter bis zu festen Datentypen und Auswahlmöglichkeiten konkretisiert.
|
||||
Beispielsweise dass Wettbewerbskategorien durch TYPO3-Categories repräsentiert werden.
|
||||
Beispielsweise dass Probenkategorien durch TYPO3-Categories repräsentiert werden.
|
||||
Das hat den Vorteil, dass TYPO3-Categories bereits native Bestandteile eines TYPO3-Redaktionssystemes sind
|
||||
und alle relevanten Attribute anbieten. Diese sind Titel,
|
||||
Parentkategorie und Beschreibung.
|
||||
@@ -73,8 +75,8 @@ Ziel dessen ist, dass sich Nutzer für einen vorgefertigten, nominalen Eintrag i
|
||||
entscheiden müssen und dass diese Auswahlmöglichkeiten im TYPO3-Backend pflegbar sind.
|
||||
Weinlagen sind im Brown-Field-Projekt bereits vorhanden, also sollen hierfür existierende Daten
|
||||
wiederverwendet werden.
|
||||
Je Wein sollen beliebig viele Weineigenschaften auswählbar sein. Wettbewerbskategorien,
|
||||
Geschmacksrichtung, etc, sind jeweils nur ein Element.
|
||||
Je Wein sollen beliebig viele Weineigenschaften auswählbar sein. Probenkategorie,
|
||||
Geschmacksangabe, etc, sind jeweils nur ein Element.
|
||||
Weitere Notizen zu diesem Gespräch sind im Anhang unter \fullref{chap:anhang-notizen-digitization}
|
||||
zu finden.
|
||||
\\
|
||||
@@ -190,14 +192,16 @@ Für alle funktionalen Belange wird ein TYPO3-Pluginobjekt registriert. Dieses P
|
||||
ActionController, der Nutzeranfragen an PHP-Funktionen (\enquote{Actions})
|
||||
bindet.
|
||||
In diesen Actions werden Fehlerbehandlungen durchgeführt, Datenmodelle der Domäne erstellt und in der
|
||||
Datenbank persistiert sowie Daten für die Anzeige im Frontend aufbereitet \cite{bib:typo3-docs-extbase}.
|
||||
Datenbank persistiert sowie Daten für die Anzeige im Frontend der Webseite aufbereitet
|
||||
\break\cite{bib:typo3-docs-extbase}.
|
||||
Neue Datenobjekte werden in Repository-Objekten registriert
|
||||
\break\cite{bib:typo3-docs-extdev-tut-tea-repositories}. Diese Repositories sind Aggregate des Controllers,
|
||||
\cite{bib:typo3-docs-extdev-tut-tea-repositories}. Diese Repositories sind Aggregate des Controllers,
|
||||
werden jedoch nach dem \enquote{Inversion of Control}-Prinzip via Dependency Injection instanziiert und
|
||||
ActionController-Objekten über Methoden übergeben \cite{bib:typo3-docs-di}.
|
||||
\break{}ActionController-Objekten über öffentliche Methoden übergeben
|
||||
\break\cite{bib:typo3-docs-di}.
|
||||
Als problematisch erweisen sich hierbei bidirektionale Verbindungen zwischen Datenmodellen, wenn die Foreign Keys
|
||||
über das SQL-Schlüsselwort
|
||||
\break\enquote{AUTO\_INCREMENT} in der Datenbank generiert werden.
|
||||
\enquote{AUTO\_INCREMENT} in der Datenbank generiert werden.
|
||||
Beispielsweise muss ein Masterrecord, der Betriebsinformationen speichert, bidirektional an ein Teilnehmerobjekt
|
||||
gebunden werden. Hierzu wird jedem der Elemente jeweils der Foreign Key des anderen übergeben.
|
||||
Als Foreign Keys werden hierfür die jeweiligen \acp{UID} herangezogen, da diese Werte durch
|
||||
@@ -257,7 +261,8 @@ Die Formfeldwerte können unverändert in der Datenbank persistiert werden.
|
||||
\paragraph*{SelectSingle} sind Formfelder, die dem Nutzer eine Auswahl aus $n$ Elementen aus
|
||||
anderen Datenbanktabellen geben. Der Nutzer muss sich für genau ein Element entscheiden.
|
||||
Beispiele für SelectSingle-Formfelder sind: Weinlage, Qualitätsstufe, Rebsorte und Geschmacksangabe.
|
||||
\break{}SelectSingle-Formfelder werden durch Select-HTML-Tags abgebildet. Der TYPO3-Form-ViewHelper für
|
||||
\break{}SelectSingle-Formfelder werden durch Select-HTML-Tags abgebildet.
|
||||
\break{}Der TYPO3-Form-ViewHelper für
|
||||
\enquote{Select} akzeptiert eine Liste an Auswahlmöglichkeiten und erstellt selbstständig Option-HTML-Tags
|
||||
für diese.
|
||||
Die Formfeldwerte von SelectSingle-Formfeldern sind die
|
||||
|
||||
Reference in New Issue
Block a user