Lade Inhalt...

Realisierung von Web-Anwendungen mittels MVC-Frameworks am Beispiel CakePHP

Seminararbeit 2011 22 Seiten

Informatik - Internet, neue Technologien

Leseprobe

Inhaltsverzeichnis

1 Einleitung

2 Begriffsklärung
2.1 Framework
2.2 CakePHP
2.2.1 MVC
2.2.2 DRY
2.2.3 CRUD
2.2.4 Konvention über Konfiguration
2.2.5 Abgrenzung

3 Planung
3.1 ERM
3.2 Datenbank-Struktur
3.3 Technische Basis

4 Realisierung
4.1 ”Backen“mitderCakePHP-Konsole
4.2 Realisierung mittels Prototyping
4.3 Anforderungsspezifische Anpassungen
4.4 Helfer und Komponenten

5 Wartung und Erweiterung
5.1 Internationalisierung und Lokalisierung
5.2 Unit-Tests

6 Resumee

Abkürzungsverzeichnis

Abbildung in dieser Leseprobe nicht enthalten

Abbildungsverzeichnis

1 Vereinfacht dargesteller MVC-Prozess

2 Darstellung eines Entity Relationship Modells anhand des Beispiels Student, Studiengang und Dozent

3 Bildschirmfoto der Konsolenanwendung ”cakebake“zumErstellen von Klassen, Methoden, Datenbankkonfigurationen und Testfällen

4 Prototyping Prozess nach Warfel[11]

1 Einleitung

Betrachtet man die Web-Anwendungsentwicklung im Jahre 2011, so handelt es sich verglichen mit der Informatik in ihrer Gesamtheit um ein junges Handwerk. Vie- le Prozesse und Technologien befinden sich in stetiger Weiterentwicklung, Metho- den werden genutzt und wieder durch effizientere Verfahren ersetzt. Die daraus für die Web-Anwendungsentwicklung resultierende Problematik sind häufig wechselnde Technologien und Konzepte, die Herausforderungen sowohl an eine flexible Konzep- tion von Web-Anwendungen, als auch an das Wissensmanagement der Entwickler und Betreiber stellen.1

Ein mittlerweile als etabliert zu betrachtendes Konzept, oder genauer, ein Architekturmodell für die Strukturierung von Web-Anwendungen2, ist MVC. Zahlreiche Frameworks implementieren dieses Architekturmodell, eines von ihnen ist das auf der Skriptsprache PHP basierende CakePHP.

Diese Arbeit vermittelt einen am Beispiel CakePHP orientierten Einblick in die Verwendung von MVC bei der Web-Anwendungsentwicklung. Nach grundlegenden Begriffsklärungen geht sie auf die Planung von CakePHP-Anwendungen ein und beschreibt anschließend die Realisierung durch ein CakePHP konzeptionell naheliegendes Vorgehen, das Prototyping3.

Abschließend soll die Frage geklärt werden, ob MVC respektive CakePHP für effiziente und nachhaltige Web-Anwendungen einsetzbar ist und welche Rahmenbedingungen dies erfordert.

2 Begriffsklärung

Diese Arbeit verwendet einige Begriffe, die für das Verständnis der Thematik als grundlegend erachtet werden. Der folgende Abschnitt beschreibt diese Begriffe und erläutert deren Zusammenhang.

2.1 Framework

”DerBegriffdesFrameworksistrelativungenaudefiniert[...]“[8].AlsFramework kann bereits eine Ansammlung von vorgefertigten Codebestandteilen gelten, ebenso wie komplexe, ”[...]bishinzukompletten[Abstraktionen]“[6].

In der Literatur finden sich zahlreiche Definitionen des Begriffes ”Framework“.Diese Arbeit beschränkt sich auf eine Darstellung im Kontext der Software-Entwicklung. Dort bezeichnet man Frameworks (oder auch Application Frameworks) sowohl im Allgemeinen wie ”[...]imSpeziellen[als]objektorientierteTechnikenzurWieder- verwendung.“[6] Sie bilden ein Rahmenwerk, ”[...]eineArtCodegerüst,dasfürdie Entwicklung von Applikationen verwendet wird.“[6]

Frameworks allein bilden keine fertigen Applikationen, sondern dienen Entwicklern einerseits als Basis für die Entwicklung, andererseits bieten sie zahlreiche Grund- funktionen, die das Erstellen von Applikationen erleichtern und beschleunigen.

”In der Regel wird [ ] ein bestimmter Stil oder [...] Aufbau vorgegeben, nach dem sich der Entwickler richten sollte“[8], um den Konfigurationsaufwand zu senken.

2.2 CakePHP

Das Framework CakePHP basiert, wie die Namensgebung erkennen lässt, auf der Skriptsprache PHP. Historisch basiert CakePHP konzeptionell auf Ruby on Rails, einem auf der Programmiersprache Ruby basierendes MVC-Framework. Auch Ca- kePHP implementiert das Design-Pattern MVC und folgt damit dem Prinzip der klaren Trennung einzelner Applikationsteile. Auf MVC wird im folgenden Kapitel

2.2.1 näher eingegangen.

Bedingt durch diese Verwandtschaft, zeichnet sich CakePHP durch zahlreiche Prinzipien aus, die von Ruby on Rails übernommen wurden und die die Entwicklung von Web-Anwendungen vereinfachen sollen.

Die folgenden Abschnitte beschreiben diese Prinzipien.

2.2.1 MVC

MVC ist ein sogenanntes Entwurfsmuster für die logische und technische Struktu- rierung von Softwareprodukten. ”DiezentraleIdee[...]ist,dassmandieVerwaltung der Information von der Art, wie die Information verändert wird, und der Art, wie der Inhalt dargestellt wird, trennen kann.“[7, S. 170]. Es der Benutzerschnittstelle in drei Rollen“[6, S. 14]: ”zerlegtdieInteraktionmit

Model Das Model repräsentiert ein Objekt, das alle Informationen eines bestimm- ten Typs darstellt. Es bildet mit seinen Methoden eine Abstraktion zur Daten- bankschicht und implementiert Funktionen, die nicht für die direkte Interak- tion mit der Benutzerschnittstelle benötigt werden. Das Model kommuniziert ausschließlich mit dem Controller und hat keine direkte Verbindung zur View.

View Die View dient der aufbereiteten Darstellung von Informationen und zur In- teraktion mit dem Benutzer. Sie erhält die für sie relevanten Daten vom Con- troller und kommuniziert diese i.d.R. per HTTP-Response an den Client.

Controller Der Controller hat eine steuernde Funktion. Er nimmt die Requests des Clients entgegen4, verarbeitet die entgegen genommenen Daten, liest bei Be- darf Daten aus dem Model, bereitet diese auf und übergibt sie an die View.

Abbildung 1 stellt die beschriebene Interaktion zwischen einem Client und einer MVC-basierenden Web-Applikation dar.

Abbildung in dieser Leseprobe nicht enthalten

Abbildung 1: Vereinfacht dargesteller MVC-Prozess

2.2.2 DRY

Das Akronym DRY steht im Englischen für die Philosophie, ”Don’trepeatyourself“undbeschreibt ”jedeInformationnureinmalineinemProjekt“[5]vorzuhalten. Hierzu zählt man neben implementiertem Code auch ”Datenbankschemata,Tests und Dokumentationen”[5].

Realisiert wird dieses Prinzip durch eine strikte Trennung der Applikationsteile mit dem Ziel der Vermeidung von Seiteneffekten. Des Weiteren lassen sich auf diese Weise schlanke und redundanzfreie Applikationen erstellen.

CakePHP implementiert dieses Prinzip vollständig und gibt Entwicklern durch seine Struktur bereits vor, wie die Applikation zu erstellen ist, um weiterhin den zugrunde liegenden Prinzipien zu folgen.

2.2.3 CRUD

Ein weiteres Vorgehen, das CakePHP in seinen Model-Kernklassen implementiert, ist CRUD. CRUD steht für die vier wesentlichen Datenbankoperationen, die zum Verwalten von Daten in einer relationalen Datenbank notwendig sind:

- Create (Anlegen eines neuen Datensatzes)
- Read (Lesen eines bestehenden Datensatzes)
- Update (Aktualisieren eines bestehenden Datensatzes)
- Delete (Löschen eines bestehenden Datensatzes)

CakePHP bietet verschiedene Methoden, die CRUD unterstützen. Neben grundlegenden Operationen bietet das Framework erweiterte Methoden, um über bestimmte Bedingungen oder per Magic Functions5 nach konkreten Feldnamen zu suchen und Daten aus der Datenbank zu lesen.

2.2.4 Konvention über Konfiguration

Wie Ruby on Rails verfolgt auch CakePHP den Ansatz des ”KonventionüberKon- figuration“ (engl. conventions over configuration). Er beschreibt die Strukturierung6 eines Frameworks, dessen Automatismen ausschließlich durch einen vorgegebenen Aufbau und Benennung von Applikationsteilen funktionieren.

CakePHP wendet dieses Vorgehen konsequent an, wie sich am Beispiel eines Models und dessen verbundenen Komponenten anhand der Namensgebung zeigt:

Model Dateiname: student.php, Klassenname: Student

View, Anzeige eines Studenten Dateiname: student/view.ctp7

Controller Dateiname: students controller.php, Klassenname: StudentsController Datenbanktabelle students

CakePHP erkennt Singular und Plural bei englischer Namensgebung automatisch und verwendet entsprechend benannte Komponenten.

Durch die Automatisierung von Framework-Bestandteilen nimmt CakePHP dem Entwickler Standardtätigkeiten ab, da das Schreiben von wiederkehrendem Co- de entfällt. Zudem verringert sich der Konfigurationsaufwand der Applikation auf grundlegende Informationen, wie beispielsweise die Zugangsdaten der Datenbank- verbindung.

2.2.5 Abgrenzung

Es gibt zahlreiche MVC-Frameworks auf dem Markt, die sich im Funktionsumfang stark ähneln. CakePHP unterscheidet sich jedoch in einigen Punkten von anderen Frameworks:

- ”geringeAnforderungenandenWebserver“[12]
- ”benötigtkeineeigeneDatenbankfürdieAnwendung“[12]
- Verwendung von Präfixen für Datenbanktabellen[12]
- implementiert umfangreiches ORM

3 Planung

Vor der praktischen Realisierung einer Web-Applikation stehen einige Planungsschritte, die nicht nur für MVC-Frameworks gültig sind. Bei diesen - und speziell bei CakePHP - bringen sie jedoch einige Vorteile mit sich, da sie den Entwicklungsaufwand reduzieren können.

Eine mögliche Vorgehensweise wird in den folgenden Kapiteln betrachtet. Sie beginnt mit der Erstellung eines Relationenmodells, geht auf die Erstellung der Datenbankstruktur ein und bietet abschließend einen Überblick über die technische Basis, die für eine Realisierung notwendig ist.

3.1 ERM

Den Grundstein für MVC-Applikationen legt die Definition des Datenmodells. Sie beeinflusst maßgeblich den Aufwand für die Erstellung und anschließende Wartung einer Applikation, was ihr in der Planungsphase eine hohe Bedeutung zumisst.

Mit Hilfe des ERM, das der Visualisierung eines solchen Datenmodells dient[4, vgl. S. 78], lassen sich Entitäten (z.B. Student, Studiengang, Dozent) mit Attributen beschreiben und in Relation zueinander setzen:

Beispiel: Die Entität Student umfasst unter anderem die Attribute Vorname, Nachname, Matrikel-Nummer und Studiengang.

Das ERM verknüpft nach der Feststellung der Attribute jede Entität über Relationen, in diesem Beispiel seien es folgende:

Student belegt Studiengang; Studiengang wird belegt von Student
Dozent unterrichtet Studiengang; Studiengang wird unterrichtet von Dozent

[...]


1 Beide Punkte begründen wesentlich die Themenwahl, da der Autor - obgleich im SAP-Umfeld - regelmäßig in Projekten Web-Anwendungen entwickelt und nach verbesserten Methoden sucht.

2 MVC wird nicht ausschließlich in der Web-Anwendungsentwicklung genutzt, sondern findet ge- nerell in der Softwareentwicklung Verwendung. Im Rahmen dieser Arbeit wird jedoch das Augenmerk auf die Web-Anwendungsentwicklung gelegt.

3 Begriffsdefinition im folgenden Kapitel

4 CakePHP nennt diese Methoden des Controller-Objektes ”Actions“.

5 Magic Functions erlauben das dynamische Erzeugen von Methoden zur Skriptlaufzeit, so dass beispielweise die ID einer Tabelle ”students“übereineMethodefindById()gefiltertwerden kann. CakePHP erzeugt die notwendigen Datenbankoperationen automatisch.

6 Darunter fallen Namensgebungen von Dateien, Klassen, Datenbanktabellen, etc.

7.ctp ist das gebräuchliche Suffix für View-Dateien in CakePHP

Details

Seiten
22
Jahr
2011
ISBN (eBook)
9783640984633
ISBN (Buch)
9783640985197
Dateigröße
582 KB
Sprache
Deutsch
Katalognummer
v176903
Institution / Hochschule
FOM Essen, Hochschule für Oekonomie & Management gemeinnützige GmbH, Hochschulleitung Essen früher Fachhochschule
Note
1,3
Schlagworte
Web Anwendungsentwicklung CakePHP MVC Frameworks

Autor

Teilen

Zurück

Titel: Realisierung von Web-Anwendungen mittels MVC-Frameworks am Beispiel CakePHP