Anhand einer konkreten Anwendung wird der Entwurfsprozess einer Webapplikation unter einer PHP/MySQL-Umgebung dargestellt. Hauptaugenmerk liegt dabei auf die PHP Bibliothek "Smarty", einer OpenSource Templateengine.
Inhaltsverzeichnis
A. Die PHP-Anwendung ""FloriOffice""
1. Grundlagen
1.1 Überblick: Ist-Stand
1.2 Probleme
1.3 Soll-Stand
2. Funktionen
2.1 Personalverwaltung
2.2 Einsatzverwaltung
2.3 Fahrzeuge und Geräte
2.4 Aufwandsentschädigung
2.5 Allgemeine Einstellungen
2.6 Administrationsverwaltung
3. Wunschfunktionen
B. Grundlagen der Webprogrammierung
3. Hypertext Markup Language
3.1 Definition
3.2 Aufbau eines HTML-Dokuments
3.3 Cascading Stylesheets
4. PHP
4.1 Definition
4.2 Der Apache HTTP Webserver
4.3 Aufbau von PHP-Quellcodes
4.4 Leistungsumfang von PHP
4.4.1 Objektorientierung unter PHP
4.5 Funktionsweise von PHP
5. MySQL
5.1 Definition
5.2 Beispiel: Datenbankentwurf und Datenabfrage
5.3 MySQL und PHP
C. Design Templates
6. Allgemeines
6.1 Forderungen an eine Template-Engine
7. Smarty als Template-Engine
7.1 Definition
7.2 Grundlegende Funktionen
7.3 Funktionsweise
D. Entwicklung der PHP-Anwendung
8. Entwicklungsumgebung
8.1 Hardware
8.2 Software
10. Realisierung am Beispiel der Personalverwaltung
10.1 Pflichtenheft
10.2 Modelle
10.2.1 UML-Klassenmodell
10.2.2 ER-Datenbankmodell
10.3 PHP-Programmierung
10.3.1 Headerdateien
10.3.2 Klassendefinition
10.3.3 Programmablauf
10.4 Template Design
10.4.1 Personaldetails
10.4.2 Person löschen
10.4.3 Personalübersicht
10.4.4 Personal hinzufügen
11. Tests
11.1 Funktionstests der Module
11.2 Multi-User Test
E. Abschließende Anmerkungen
12. Entwicklungstand zum jetzigen Zeitpunkt
13. Ausblick
14. Bewertung des Einsatzes von Smarty als Template-Engine
14.1 Smarty und HTML-Editoren
15. Schlusswort
Zielsetzung & Themen
Ziel der Arbeit ist die Konzeption und Realisierung einer Webanwendung namens "FloriOffice", die speziell auf die administrativen Bedürfnisse von Freiwilligen Feuerwehren zugeschnitten ist. Die Forschungsfrage fokussiert sich darauf, wie durch den Einsatz von PHP in Kombination mit der Template-Engine Smarty eine zentral verwaltete, datenbankgestützte Plattform geschaffen werden kann, die Verwaltungsaufwand minimiert und abteilungsübergreifende Datenkonsistenz sicherstellt.
- Zentrale Verwaltung feuerwehrspezifischer Daten (Personal, Einsätze, Fahrzeuge).
- Architektur einer Webanwendung basierend auf einem Client-Server-Modell via Internet.
- Trennung von Programmlogik (PHP) und Design (HTML) durch die Template-Engine Smarty.
- Implementierung von Sicherheitsmechanismen durch Benutzergruppen und Session-Management.
Auszug aus dem Buch
10.4.1 Personaldetails
Da es sich bei den Personaldetails um ein Popupfenster handelt, sind natürlich die Rumpfdateien an die andere Fenstergröße und weitere Besonderheiten angepasst. Daher wird auch die Datei popup_start.tpl eingefügt. In dieser Datei ist wiederum eine CSS-Datei eingefügt, welche Formatierungsklassen bereitstellt. Eine davon ist current_menue. Alle Abschnitte der Detailansicht beginnen, wie man in dem Screenshot sehen kann, mit der Überschrift des jeweiligen Abschnittes im blauen Balken - in diesem Fall mit der Überschrift "Allgemein".
In die bereits schon existierende Tabelle wird unter der Abschnittsüberschrift eine weitere Tabelle eingefügt. Dies erlaubt eine bessere, übersichtlichere Strukturierung. Jetzt folgen die ersten Smarty Befehle. Wie gesagt, ist das Personenobjekt ein Array. Wie bereits in 10.3.3.1 beschrieben, wird auch bei den Personaldetails, der Einfachheit wegen, ein Array erstellt. Da dieses Array nur ein Element besitzt und wir dieses auch genau anzeigen wollen, müssen wir es explizit ansprechen $Person[0].
Der gewünschte Wert der Personalnummer befindet sich in der Unterklasse Allgemein, welche ebenfalls angegeben werden muss. Es sieht zwar nach viel Schreibarbeit aus, aber da jeder Abschnitt auf die gleiche Unterklasse zugreift, kann man dies durch ein einfaches Copy&Paste-Verfahren vereinfachen.
Zusammenfassung der Kapitel
Grundlagen: Einführung in die Problematik dezentraler Datenhaltung in Freiwilligen Feuerwehren und Definition des Soll-Zustands einer zentralen Webanwendung.
Funktionen: Auflistung der essenziellen Features der Anwendung, darunter Personal- und Einsatzverwaltung sowie Anforderungen an die Administration.
Hypertext Markup Language: Vermittlung technischer Grundlagen zu HTML und Cascading Stylesheets als Basis für den Webauftritt.
PHP: Erläuterung der serverseitigen Skriptsprache PHP, ihrer Funktionsweise und der Integration in Webserver-Umgebungen.
MySQL: Beschreibung des relationalen Datenbankmanagementsystems MySQL und dessen Anbindung mittels PHP.
Allgemeines: Theoretische Begründung für den Einsatz von Template-Engines zur Trennung von Programmier- und Designlogik.
Smarty als Template-Engine: Technische Details zur Implementierung und Funktionsweise der spezifischen Bibliothek Smarty.
Entwicklungsumgebung: Darstellung der für das Projekt verwendeten Hard- und Softwarekomponenten.
Realisierung am Beispiel der Personalverwaltung: Detaillierte Dokumentation des Implementierungsprozesses, der Klassenmodellierung, des Pflichtenhefts und der Programmabläufe.
Tests: Validierung der entwickelten Module durch Funktionstests und einen Multi-User-Test in einer LAN-Umgebung.
Entwicklungstand zum jetzigen Zeitpunkt: Übersicht über den erreichten Funktionsumfang der Anwendung.
Ausblick: Zukunftspläne bezüglich der Servereinrichtung für Internetzugriff und geplante Erweiterungen der Anwendung.
Bewertung des Einsatzes von Smarty als Template-Engine: Kritische Reflexion der Vor- und Nachteile von Smarty bei der Arbeit mit Objekten und in professionellen Hosting-Umgebungen.
Schlusswort: Danksagung an Kooperationspartner und Betreuer.
Schlüsselwörter
PHP, Smarty, Webanwendung, Feuerwehr, Personalverwaltung, MySQL, Datenbank, HTML, Template-Engine, Objektorientierung, Session-Management, Software-Entwicklung, Webprogrammierung, Client-Server, IT-Infrastruktur
Häufig gestellte Fragen
Worum geht es in dieser Bachelor-Thesis grundsätzlich?
Die Arbeit befasst sich mit der Entwicklung einer Webanwendung namens "FloriOffice", die speziell auf die Verwaltungsaufgaben von Freiwilligen Feuerwehren ausgelegt ist.
Welche zentralen Themenfelder behandelt die Arbeit?
Die Hauptfelder sind Webentwicklung mit PHP und MySQL, die Modellierung von Datenstrukturen für eine Personalverwaltung sowie der Einsatz von Template-Engines zur effizienten Trennung von Logik und Design.
Was ist das primäre Ziel des Softwareprojekts?
Ziel ist es, eine zentral erreichbare Software zu schaffen, die den hohen Verwaltungsaufwand bei dezentral strukturierten Feuerwehren durch eine einheitliche Datenbasis und Browser-basierte Bedienung reduziert.
Welche wissenschaftlichen Methoden kommen bei der Realisierung zum Einsatz?
Es werden klassische Methoden des Software-Engineerings verwendet, darunter die Erstellung eines Pflichtenhefts, die Modellierung mittels UML (Klassenmodelle) und ER-Diagrammen sowie die Durchführung von Funktionstests.
Was wird im umfangreichen Hauptteil der Arbeit detailliert behandelt?
Der Hauptteil dokumentiert den gesamten Entwicklungspfad: Von der Modellierung der Datenbank und Klassen, über den PHP-Programmablauf und das Template-Design, bis hin zur konkreten Implementierung der Personalverwaltung.
Welche Schlagworte charakterisieren das Projekt am besten?
Die wichtigsten Schlagworte sind "FloriOffice", "Template-Engine Smarty", "PHP-Webanwendung", "Feuerwehr-Administration" und "Datenbankbasierte Personalverwaltung".
Welche Rolle spielt die Template-Engine Smarty in der Anwendung?
Smarty dient dazu, den PHP-Code strikt vom HTML-Design zu trennen, was die Wartbarkeit des Codes erhöht und es ermöglicht, dass Designer ohne tiefgehende Programmierkenntnisse am Layout arbeiten können.
Warum ist eine sessionbasierte Benutzerverwaltung für diese Anwendung wichtig?
Sie dient als Sicherheitsmechanismus, um den Zugriff auf Personaldaten zu beschränken und sicherzustellen, dass Benutzer nur innerhalb der für ihre Rolle vorgesehenen Berechtigungen agieren können.
Wie wurde die Datensicherheit bei der Personallöschung gelöst?
Es wurde ein zweistufiges Verfahren via HTML-Formular implementiert, das eine explizite Bestätigung des Löschvorgangs erfordert, um Datenverluste durch versehentliche Klicks zu verhindern.
Was sind die wichtigsten Erkenntnisse aus dem Fazit zur Template-Engine?
Smarty wird zwar als Arbeitserleichterung für große Projekte empfohlen, jedoch wird kritisch angemerkt, dass die Installation bei vielen kommerziellen Hosting-Providern aufgrund fehlender Zugriffsrechte problematisch sein kann.
- Quote paper
- Thomas Frietsch (Author), 2007, Realisierung einer PHP-Anwendung mit der Template-Engine Smarty, Munich, GRIN Verlag, https://www.grin.com/document/145564