\section{System - PHP Framework} \frame{ \begin{block}{} \begin{center} \huge{System - PHP Framework} \end{center} \end{block} } \subsection{Anwendungsbereich} \frame{ \frametitle{Anwendungsbereich von System} System kann in PHP-basierten Anwendungen eingesetzt werden. \begin{block}{Anwendungsbereich} \begin{itemize} \item{Websites} \item{Webtools} \item{Webapps} \end{itemize} \end{block} } \subsection{Features} \frame{ \frametitle{Features von System} System vereichfacht die Entwicklung von PHP basierten Anwendungen \begin{block}{Features} \begin{itemize} \item{Kapselung} \item{REST Schnittstelle} \item{Moderne Webtechnologien} \item{Utilities} \item{Modulare GUI für administrative Aufgaben} \end{itemize} \end{block} Teilintegration möglich } \subsubsection*{Kapselung} \frame{ \frametitle{Klassische Struktur von PHP Projekten} \begin{block}{} Die klassische Strucktur von PHP Projekten orientiert sich oft an der HTML Struktur. In den entsprechenden HTML-Div's werden weitere PHP-Scripts included. Das birgt Nachteile. \begin{itemize} \item{HTML Code ist unübersichtlich} \item{Programm ist eine Datei, zerteilt in Abschnitte} \item{Definitionen in anderen Abschnitten des Programms} \item{Spezialwissen notwendig für die Wartung} \end{itemize} \end{block} } \frame{ \frametitle{Kapselung in System} Eine Gute Kapselung vereinfacht die Übersicht über das programm. Der Programmierer soll nur die Struktur verstehen und kann den gesuchten Inhalt schnell lokalisieren. \begin{block}{Kapselung von System} \begin{itemize} \item{nach Sprache} \item{nach Art der Rückgabe (Website/Daten/Administratives)} \item{Nach Sinneinheit (Seiten/Module)} \end{itemize} \end{block} } \frame{ \frametitle{Kapselung nach Sprache} Die Kapselung nach Sprache implemntiert ein MVC-Modell Der Begriff model view controller (MVC) ist ein Muster zur Strukturierung von Software-Entwicklung in die drei Einheiten Datenmodell, Präsentation und Programmsteuerung. wikipedia \begin{block}{MVC durch Kapselung nach Sprache} \begin{itemize} \item{PHP (Controller Server)} \item{SQL (Model)} \item{JS (Controller Client)} \item{CSS (View)} \item{HTML (View)} \end{itemize} \end{block} } \frame{ \frametitle{Kapselung nach Art der Rückgabe} \begin{block}{Endpoints Kapseln die Rückgabe} \begin{itemize} \item{index.php - Webpages/HTML Rückgabe} \item{api.php - JSON-Daten/Steueranweisungen} \item{sai.php - Administrative Aufgaben} \item{(setup.php - Install Scripts)} \end{itemize} \end{block} } \frame{ \frametitle{Kapselung nach Sinneinheit} \begin{block}{Kapselung nach Sinneinheiten} \begin{itemize} \item{Ordnerstrukturen ordnen den Code} \item{Mudulare Schnittstellen - sai module, (teil)pages} \end{itemize} \end{block} Das PHP-Feature autoload ermöglicht es Klassen bei Bedarf nachzuladen. } \subsubsection*{REST in System} \frame{ \frametitle{REST in System - Where the Magic happens} \begin{block}{} \begin{itemize} \item{Mapping von URL-Parametern auf Funktionsnamen} \item{Regeln definiert zulässige Aufrufe} \item{Parameter-Typ-Prüfung} \end{itemize} \end{block} } \subsubsection*{Moderne Webtechnologien in System} \frame{ \frametitle{Moderne Webtechnologien, von System unterstützt} \begin{block}{} \begin{itemize} \item{Hashbang Crawling-Scheme - \#!address} \item{JQuery \& Bootstrap} \item{SCSS(SASS), Minify} \item{git} \end{itemize} \end{block} } \subsubsection*{Utilities von System} \frame{ \frametitle{Utilities von System} \begin{block}{} \begin{itemize} \item{Simples Template System - \$\{var\} } \item{Mask Server Structure - Dateien bereitstellen, Cache} \item{Erweiterbare Configuration} \item{Cron Job Verarbeitung} \item{Rudimentäres Documentations-System} \item{Library Schnittstelle - bindet php,js,css} \item{Log - Überall, Gekapselt, Zentral verwaltet} \item{Security, Nutzerverwaltung} \item{Erweiterbares Installations-Script} \end{itemize} %\includegraphics[width=7.5cm]{img/Azofarbstoffe2.jpg} \end{block} } \subsubsection*{Modulare GUI für administrative Aufgaben} \frame{ \frametitle{System Admin Interface - SAI} \begin{block}{Features von System Admin Inteface} \begin{itemize} \item{Modular - erweiterbar} \item{Log - Alle fangbaren Fehler, die auf der Website auftreten} \item{Analysis - Besucher, Logins, Fehler} \item{Nutzerverwaltung} \item{Text, Cache, Cron, Config, Todo, Git, ...} \end{itemize} %\includegraphics[width=6.5cm]{img/Azofarbstoffe.jpg} \end{block} } \subsection{Vorteile und Nachteile} \frame{ \frametitle{Vorteile und Nachteile} \begin{block}{Vorteile bei Einsatz von System} \begin{itemize} \item{} \end{itemize} \end{block} \begin{block}{Nachteile bei Einsatz von System} \begin{itemize} \item{} \end{itemize} \end{block} } \subsection{Ausblick} \frame{ \frametitle{Ausblick - Bootstrap} Bootstrap Grid, Click Click } \frame{ \frametitle{Ausblick - Usermanagement} saml, idps, sps, verwaltung mehrerer Seiten }