Portal > Foren > PHP > PHP-Programmierung > Welche Seitenstruktur...herangehensweise
Antwort
 
Themen-Optionen
Alt 30.06.2007, 14:45 Nach oben    #1
Gabriel
 
Registriert seit: 27.09.2006
Ort: Radebeul
Beiträge: 407
Standard Welche Seitenstruktur...herangehensweise

heiho,
angeregt durch den Thread [Design] CMS-System: Seitenstruktur

stellt sich mir die Frage, wie man an so etwas herangeht.
Gibt es dazu Tutorials?

Meine Frage, um es noch einmal deutlicher zu sagen ist, wie plant man so ein "Projekt" im sinne des Codes (wie Programiert man es).

Ich bin halt lernender und hab noch seeehr viel zu lernen, und hab zum teil den Code von mepeisen nciht verstanden.
z.b. wann nimmt man eine neue Klasse? Man könnte doch so manches mit methoden lösen.

Naja ich hoffe cih hab einigermasen verständlich geschireben.

grüße
Gabriel
__________________
kampfgnom ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 30.06.2007, 15:53 Nach oben    #2
Ben
Benjamin Klaile
 
Benutzerbild von Ben
 
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 4.480
Standard

Hi Gabriel,
du sprichst da ein Thema an, was man glaube ich nicht mit einer konkreten Antwort abschließen könnte.
Zitat:
Zitat von kampfgnom Beitrag anzeigen
stellt sich mir die Frage, wie man an so etwas herangeht.
Nun, es gibt ja sogenannte Design Patterns / Entwurfsmuster, die oftmals die Grundstruktur von Anwendungsstrukturen prägen.

Ich denke auch, dass da jeder eine andere Sicht hat. Ich habs ja gerade hier beschrieben. Ich habe lange versucht herauszufinden, wie ich so etwas selbst erstelle und bin letztlich irgendwie daran gescheitert, weil ich irgendwie nicht voran kam. Klar, man soll sowieso immer verbessern, immer in Iterationen entwickeln und implementieren. Nichtsdestotrotz steht für mich am Ende, dass man so etwas erstes nur mit Erfahrung auf die Reihe bekommt und zweitens leichter den Einstieg findet, wenn man mal ein anderes Framework genutzt hat.
Einfach nur genutzt.

Also gar nicht darauf achten, wie es implementiert ist, sondern einfach nur auf Basis eines solchen Frameworks eine kleine Anwendung erstellen.

Deine Frage richtet sich jetzt nicht direkt an die Nutzung von Frameworks am im Prinzip ist es genau das, was du brauchst. Einen Pool von Komponenten, die du dann in Lego-Technik-Manier zusammensteckst.

Ich finde, dass du auf diesem Weg eine gewisse Sensibilität dafür entwickelst, was du gut findest und was nicht, was du intuitiv verwenden kannst und wo du denkst .. ach ne, das hätt ich aber eigentlich gerne anders gemacht.

Ist ja völlig egal, was man nimmt. Es muss nicht mal ein großes oder gutes Framework sein. Es muss nicht mal ein Framework sein.
Du kannst dir auch einfach mal ein OpenSource-CMS oder so runterladen und mal schauen, wie die das lösen. Bestenfalls was ganz Kleines, wo nicht so viel mit Modulen etc. gearbeitet wird. Dann versuchst du das mal nachzubauen, nur Teile und so weiter und so fort.

So lernst du, gewinnst Erfahrungen und kommst irgendwann auch dahinter, was andere da eigentlich machen und vor allem .. WARUM sie es machen.

Learning by doing .. viel geschwafelt und simples Fazit.
Ben ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 30.06.2007, 17:21 Nach oben    #3
Gabriel
 
Registriert seit: 27.09.2006
Ort: Radebeul
Beiträge: 407
Standard

ok danke erstmal für den Tipp.

Gut ich merk schon das Thema ist sehr komplex und das kann man nicht so einfach erklären.

Naja ein versuch wars wert^^
Hab mir jetzt ersteinmal ein Tutorial
gesucht mit dem ich mich mal ins Zend Framework einarbeiten möchte...mal sehen obs funzt...

grüße
Gabriel
__________________
kampfgnom ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 30.06.2007, 17:46 Nach oben    #4
Martin Eisengardt
 
Registriert seit: 30.03.2006
Ort: Pfinztal
Beiträge: 355
Standard

Zitat:
Zitat von Ben
Nichtsdestotrotz steht für mich am Ende, dass man so etwas erstes nur mit Erfahrung auf die Reihe bekommt und zweitens leichter den Einstieg findet, wenn man mal ein anderes Framework genutzt hat.
genau das. Ums mal zu ergänzen: Ich bin nun fast 10 Jahren Profi-Entwickler (wenn ich mir mal die Azubi-Zeit mit anrechne *g*). Und zu Anfang hätte ich mich sowas nicht mal getraut, weil ich dann ganz einfach auch nicht gewusst hätte, wie man loslegt.

Und wie mach ichs heute? Ich lege nicht einfach so los. Nun, gewissermaßen schon, weil mir 5 bis 6 Blätter mit Zeichnungen als Konzept reichen, wobei man sowas eher einem Genie mit Hang zum Wahnsinn abkauft und keinem Entwickler . Aber nichts destotrotz sind dort Wochen in die Lande gezogen, wo ich immer mal in einer freien Minute oder wenn im Fernsehen Werbung lief oder wie auch immer darüber nachgedacht habe, bevor ich es zu Papier brachte.

Auch wenn ich derzeit wenig schriftliches Konzept habe, gehört doch eine Menge Erfahrung dazu, sowas zu machen, so dass es auch zielführend ist. Und vor allem, wie Ben schrieb: gehört gerade bei PHP einfach auch mal die Erfahrung mit anderen Systemen dazu. Ich hab das Glück, beruflich in einem richtig großen Java-Projekt mitzuarbeiten, kenne also viele Sachen wie Anwendungsdesign, was ein PHP-Entwickler bei Webseiten eigentlich kaum kennenlernt, seit Jahren aus dem FF.

Zitat:
Zitat von kampfgnom Beitrag anzeigen
Gibt es dazu Tutorials?
Nö, glaube nicht.

Zitat:
Zitat von kampfgnom Beitrag anzeigen
Meine Frage, um es noch einmal deutlicher zu sagen ist, wie plant man so ein "Projekt" im sinne des Codes (wie Programiert man es).
So wie jedes andere Projekt. Man entwirft zunächst ein großes Ganzes, sowie die Ziele. Bei mir waren das:
  • Unterteilung der Webseite in Komponenten
  • Manipulieren aller Komponenten per Ajax
  • Identischer Code für Ajax-Requests, Komplettaufbau und XML-Schnittstellen
  • Simulation eines "echten" Lebenszyklus einer Anwendung auch über Requests hinaus
  • Datenaustausch zwischen Anwendungsinstanzen (beispielsweise mehreren Usern)
Als nächstes wird das ganze in Teilprobleme unterteilt. Man pickt sich nach und nach aus dem großen Ganzen Teilprobleme heraus und versucht sie so zu lösen, dass sie funktionieren. Beispielsweise das Manipulieren der Webseite per Ajax-Request:
  • Wie identifiziere ich die einzelnen Komponenten? Lösung: Sie erhalten eine ID, die ich im Client und Server immer kenne. Die ID wird zentral immer vergeben und neue Komponenten (beispielsweise ein neues Span-Tag) kriegt immer auch eine neue ID.
  • Wie werden Komponenten beeinflusst? Ansatzpunkte: Man kann neue HTML-Tags erzeugen, bestehende löschen oder auch bestehende beeinflussen bei Attributen und Style-Tags.
Das alles klingt bereits jetzt nach viel Arbeit im Detail und das ist es auch. Da ist dann noch lange keine Zeile Code geschrieben. Sicher kann man auch langsam loslegen und experimentieren, wobei das bei sowas durchaus schwierig sein kann.


Zitat:
Zitat von kampfgnom Beitrag anzeigen
und hab zum teil den Code von mepeisen nciht verstanden.
hmmm.
Ich werde das ganze vielleicht sogar noch heute abend zum Download anbieten zusammen mit einem kleinen Tutorial. Dan kann man auch experimentieren und vielleicht so hinter den Code kommen. Anfassen wirkt doch manchmal mehr als die graue Theorie

Zitat:
Zitat von kampfgnom Beitrag anzeigen
z.b. wann nimmt man eine neue Klasse? Man könnte doch so manches mit methoden lösen.
Ähhhm. Klassen kapseln Daten (=Attribute/ Objektvariablen) und Funktionalitäten (=Methoden). Wenn du mehrere Gruppen bilden kannst, kannst du theoretisch mehrere Klassen bauen
Wenn du einfach etwas entwickelst, insbesondere kleinere PHPs oder Webseiten, macht man sich darüber kaum Gedanken. PHP ist ja schliesslich auch eine Skriptsprache. Wenn du ein Framework entwickelst, willst du immer auch eine Basis bereitstellen, die man nutzen kann. Eine durchdachte Klassenhierarchie ist nie ein verkehrter Ansatz bei sowas.
__________________
Open Sourcing the Online Gaming Universe
PHP/SQL/Java/C++/Assembler.
Seit Jahren Mitglied und Entwickler in einem der wohl größten Java-Projekte der Welt: http://weblogs.java.net/blog/hansmul...e_desktop.html
mepeisen ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 30.06.2007, 18:05 Nach oben    #5
Gabriel
 
Registriert seit: 27.09.2006
Ort: Radebeul
Beiträge: 407
Standard

ok danke,
es hilft immer wenn es jmd zumindest versucht, ob ichs verstnaden hab ist mal ne andere sache...
werd mir dann mal dein Framework Runterladen und anschauen ob ich damit zurecht komme.

Vielen Dank für die Tipps
__________________
kampfgnom ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 30.06.2007, 23:41 Nach oben    #6
Neuer Benutzer
 
Registriert seit: 30.06.2007
Beiträge: 11
Standard

Hier gibts ein gutes, kleines Tutorial zum Thema PHP/OOP:

http://www.phpit.net/article/simple-mvc-php5/5/
Koala ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 01.07.2007, 00:11 Nach oben    #7
Ben
Benjamin Klaile
 
Benutzerbild von Ben
 
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 4.480
Standard

Hi,
allein die objektorientierte Programmierung anwenden zu können reicht aber meiner Erfahrung nach nicht aus. Es ist eben gerade mehr, als zu wissen, wie man Daten kapselt, Schnittstellen anbietet und implementiert oder Design Patterns anwendet.

mepeisen hat das schon super auf den Punkt gebracht.
Nichtsdestotrotz stimme ich dir zu, dass die objektorientierte Sichtweise im Bezug auf die Anwendungsstruktur eigentlich ein absolutes Muss ist.

PS:
Willkommen beim Developer's Guide.
Ben ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 01.07.2007, 14:20 Nach oben    #8
Neuer Benutzer
 
Registriert seit: 30.06.2007
Beiträge: 11
Standard

Danke für die Begrüßung

na ja - ob OOP ein MUSS ist ?

Es wird heutzutage beruflich verlangt - als PHP-Anfänger würd ich allerdings erst mal prozedural anfangen.

Aber wer oft programmiert, der wird immer wieder über Klassen/OOP stolpern
- z.B. bei Javascript oder wenn man was ändern muß in einer mysql-Klasse oder beim phpmailer, smarty ...

Es ist also nur von Vorteil, OOP nachvollziehen zu können.

edit:
ach so - ich hab ein Tutorial geschrieben über die prozedurale vorgehensweise:
http://www.jakoby-edv.de/tutorial

... ist aber noch nicht ganz fertig

Geändert von Koala (01.07.2007 um 14:23 Uhr).
Koala ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 01.07.2007, 14:23 Nach oben    #9
Ben
Benjamin Klaile
 
Benutzerbild von Ben
 
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 4.480
Standard

Zitat:
Zitat von Koala Beitrag anzeigen
na ja - ob es ein MUSS ist ?
Nein, ist es sicher nicht. War vielleicht etwas missverständlich geschrieben.

Aber du sagst es ja selbst:
Zitat:
Zitat von Koala Beitrag anzeigen
Aber wer oft programmiert, der wird immer wieder über Klassen/OOP stolpern
[..]
Es ist also nur von Vorteil, OOP nachvollziehen zu können.
Man wird nicht nur darüber stolpern, sondern man wird auch irgendwann lernen, warum es sinnvoll sein kann, Funktionalität in Klassenstrukturen abzulegen. Aber das ist ja eigentlich schon wieder ein anderes Thema.

Dass es auch ohne objektorientierte Strukturen geht ist unzweifelbar richtig.
Ben ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 27.10.2007, 14:13 Nach oben    #10
Gabriel
 
Registriert seit: 27.09.2006
Ort: Radebeul
Beiträge: 407
Standard

Hi! ich muss diesen Thread nocheinmal aus der versenkung zurückholen!

Zitat:
Zitat von mepeisen
Und wie mach ichs heute? Ich lege nicht einfach so los. Nun, gewissermaßen schon, weil mir 5 bis 6 Blätter mit Zeichnungen als Konzept reichen, wobei man sowas eher einem Genie mit Hang zum Wahnsinn abkauft und keinem Entwickler . Aber nichts destotrotz sind dort Wochen in die Lande gezogen, wo ich immer mal in einer freien Minute oder wenn im Fernsehen Werbung lief oder wie auch immer darüber nachgedacht habe, bevor ich es zu Papier brachte.
Du hast alles aufgeschrieben. Da interresiert mich jetzt mal was genau di da aufschreibst.
Zur Zeit bin ich dabei mir eine Art Framework zu basteln (nicht wirklich, letztendes nur um zu lernen) und was ich dabei gerade gelernt habe, ist das mein Konzept nicht wirklich aufgeht.
Ich hab halt einfach mal so drauf los geschrieben.

Daher meine Frage:
Was schreibt ihr euch vorher genau auf? Meinetwegen als Beispiel das ZF.
Wenn ihr sowas Planen und schreiben müsstet, wie würdet ihr rangehen.
Also MVC-Prinzip und naja ihr kennt ja sicher alle das ZF.

Schreibt ihr euch nur die Anforderungen auf, so wie das mepeisen mal erwähnt hat. Oder macht ihr euch konkrete gedanken über Klassen die ihr braucht.

Naja, das lässt sich sicher nicht so einfach beantworten, aber deswegen frag ich ja. Wenn es einfach wäre, dann hätt ich ja auch von alleine draufkommen können

Also dann, fröhliches schreiben
__________________
kampfgnom ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 29.10.2007, 09:28 Nach oben    #11
Martin Eisengardt
 
Registriert seit: 30.03.2006
Ort: Pfinztal
Beiträge: 355
Standard

Wenn du nicht weisst, wie du loslegen sollst, dann eigentlich daher, dass das aktuelle Problem für dich zu komplex ist. Also legst du am besten immer mit einer Anforderungsliste los. Was soll ein solches Framework leisten? Welches Themengebiet behandelt es? Welche Vorgaben soll es machen? Welche Annahmen treffen? Es gibt genug Beispiele, wo ein Framework zunächst als eine Art lose Bibliothek startet und nicht komplett neu auf der grünen Wiese. Manche Frameworks wachsen erst nach und nach zu etwas, was man Framework nennen könnte. Daher ist es auch für Frameworks ein guter Start, sich typische Problemstellungen, die man immer wieder hat, herauszunehmen und sie in einer Art Bibliothekssammlung zu lösen. Die Lösungen sollten durchgängig sein. Aber ein Framework ist ebend auch eine solche Bibliothek. Wie ich oben schon geschrieben hatte: Man zerlegt das Problem in Teilprobleme und verschafft sich dadurch eigentlich zwangsläufig einen Überblick, was man eigentlich machen will.

Was man sich dabei herauspickt, ist fast schon zweitrangig. Es gibt genug Problemstellungen, die man im Rahmen eines Frameworks lösen kann. Da wäre zum Beispiel die Frage nach Fehler-Behandlung. Nun kommt es halt stark darauf an, was für Teilprobleme identifiziert wurden. Bei einer Datenbank-Schnittstelle (Zend_DB) möchte man folgendes:
Eine allgemeine Zugriffsklasse unabhängig vom Datenbank-Typ.
Man benötigt also eine Abstraktionsschicht, mit der man auf eine Datenbank zugreifen kann und eine Art Treiber- oder Implementierungsschicht für unterschiedliche Datenbanken.

So entsteht nun nach und nach ein Klassenmodell. Man benötigt Klassen für eine Datenbank-Verbindung, für eine Datenbank-Tabelle. Man benötigt eine Lösung für das Problem: Wer legt Datenbankverbindungen an? Wer verwaltet sie?

Ich denke, wenn du derart strukturiert vorgehen willst oder aufgrund der Größe eines Problems auch musst, empfehle ich, UML zu lernen. Und zwar nicht nur Klassendiagramm, sondern mehr. So Sachen, wie beispielsweise Aktivitätsdiagramme, Objektfluss u.ä. lassen sich mit UML-Diagrammen sehr gut zu Papier oder in ein UML-Programm bringen. Das hilft, sein Problem strukturiert und zielführend zu lösen. Und prinzipiell ist das, was ich an Notizen benötige, nicht viel mehr als ein UML-Diagramm. Auch wenn ich mich nicht immer an die sturen Vorgaben halte, wie eine Aktivität zu zeichnen ist
__________________
Open Sourcing the Online Gaming Universe
PHP/SQL/Java/C++/Assembler.
Seit Jahren Mitglied und Entwickler in einem der wohl größten Java-Projekte der Welt: http://weblogs.java.net/blog/hansmul...e_desktop.html
mepeisen ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 29.10.2007, 15:19 Nach oben    #12
Gabriel
 
Registriert seit: 27.09.2006
Ort: Radebeul
Beiträge: 407
Standard

Vielen dank mepeisen für deinen sehr ausführlichen Beitrag.
Ok also ich möchte das ganz nocheinmal kurz für mich zusammenfassen:
  1. Teil Problem raussuchen
  2. Dann anhand eines UML-Diagramm dieses Problem auf "Klassenstruktur" bringen (Also jetzt bei der Datenbank zum Beispiel: Abstraktionsklasse für Treiber)
Das so lange machen bis man Alle Probleme gemeistert hat.

Da habe ich aber gleich nocheimal eine Frage, sollte man sich nicht eigentlich erst mit den großen, ich nenn sie jetzt einmal "globalen" Problemen beschäftigen, sowas wie Fehler Behandlung, Abhängigkeiten, etc?

grüße
Gabriel
__________________
kampfgnom ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 30.10.2007, 23:55 Nach oben    #13
Martin Eisengardt
 
Registriert seit: 30.03.2006
Ort: Pfinztal
Beiträge: 355
Standard

Das kommt drauf an, was du vorhast. Bei sowas mache ich mir eigentlich immer eine Abhängigkeitsliste, also welches meiner Teilprobleme von anderen abhängig ist und hoffe, dass ich eines finde, das von nichts abhängt Voraussetzung ist, dass du dir bereits einen Überblick verschafft hast, das sollte klar sein.

Ne, im Ernst. Fehlerbehandlung ist ein klassisches Beispiel, da sowas schon sehr zentral ist und eine saubere Fehlerbehandlung, die zieht sich durch das gesamte Framework durch. Ob du Datenbankzugriffe machst oder Berechnungen. Fehler wollen erkannt und zurückgegeben werden. Das Framework kann die behandeln, dann hast du zwangsläufig auch sowas wie eine Fehlerpräsentation (HTML-seitig wie auch immer) oder du entscheidest dich, dass du (mit PHP5 und mein Favorit) einfach Exceptions wirfst und die Anwendung damit halbwegs sinnvoll umgehen muss. Geschmacksache und eine Frage, was du willst.

Aber an dem Beispiel sieht man auch wie schnell sowas nicht mehr zielführend ist. Wenn du beispielsweise in Datenbankzugriffen Fehlerhandling brauchst, um Fehler zu melden/ zu protokollieren usw. Aber wenn du gleichzeitig beispielsweise zum Übersetzen der Fehlertexte Datenbankzugriffe hast, lässt sich sowas für Nicht-Chaoserprobte-Genies schwer stabil realisieren und zielführend ist es eigentlich auch nicht in meinen Augen
__________________
Open Sourcing the Online Gaming Universe
PHP/SQL/Java/C++/Assembler.
Seit Jahren Mitglied und Entwickler in einem der wohl größten Java-Projekte der Welt: http://weblogs.java.net/blog/hansmul...e_desktop.html
mepeisen ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 02.11.2007, 15:02 Nach oben    #14
Gabriel
 
Registriert seit: 27.09.2006
Ort: Radebeul
Beiträge: 407
Standard

So ich hab jetzt mal was ausprobiert
Ich hab mich einfach mal rangesetzt und ganz grob in nem Diagramm aufgeschrieben:

was will ich jetzt von euch?! Naja ihr sollt mich schon im Ansatz fertig machen
Mir wärs zwar lieber ihr würdet sagen: Toll haste das gemacht.
Aber wenns scheiße is, dann is es scheiße

Und nich zimperlich sein!!
__________________
kampfgnom ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 02.11.2007, 15:13 Nach oben    #15
Martin Eisengardt
 
Registriert seit: 30.03.2006
Ort: Pfinztal
Beiträge: 355
Standard

Ich empfehle dir, nochmal typische Requests und Anwendungsfälle darauf abzubilden. Um ein Gefühl dafür zu kriegen, was bei deinem Modell passiert, wer welche Objekte anlegt. Beispiel:
-> FrontController fängt an
-> FrontController legt Template anhand der URL fest o.ä.
-> FrontController erfragt eine typische Konfigurationseinstellung
-> FrontController verarbeitet Daten und greift dazu ggf. aufs Modell zu
-> Modell fordert eine Datenbank-Verbindung an, die anhand der Konfiguration erstellt wird.
-> Das Template wird je nach Ergebnis des FrontController mit Daten/Modellen oder auch einem Fehler gefüttert, das es dann anzuzeigen hat.

Bemerkenswert finde ich, dass du die Fehler als solche bzw. die Fehlerinformation und deren HTML-Darstellung trennen willst (so verstehe ich es). Das ist auch durchaus sinnvoll. So kann man Fehler, wie beispielsweise SQL-FehlerCodes, die man einem User (auch saus Sicherheitsgründen) nicht zumuten will, zwar Loggen, aber als allgemeinen Fehler auf der Oberfläche ausgeben.

Weiter so ))
__________________
Open Sourcing the Online Gaming Universe
PHP/SQL/Java/C++/Assembler.
Seit Jahren Mitglied und Entwickler in einem der wohl größten Java-Projekte der Welt: http://weblogs.java.net/blog/hansmul...e_desktop.html
mepeisen ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 02.11.2007, 15:28 Nach oben    #16
Gabriel
 
Registriert seit: 27.09.2006
Ort: Radebeul
Beiträge: 407
Standard

Zitat:
Zitat von mepeisen Beitrag anzeigen
Ich empfehle dir, nochmal typische Requests und Anwendungsfälle darauf abzubilden. Um ein Gefühl dafür zu kriegen, was bei deinem Modell passiert, wer welche Objekte anlegt. Beispiel:
-> FrontController fängt an
-> FrontController legt Template anhand der URL fest o.ä.
-> FrontController erfragt eine typische Konfigurationseinstellung
-> FrontController verarbeitet Daten und greift dazu ggf. aufs Modell zu
-> Modell fordert eine Datenbank-Verbindung an, die anhand der Konfiguration erstellt wird.
-> Das Template wird je nach Ergebnis des FrontController mit Daten/Modellen oder auch einem Fehler gefüttert, das es dann anzuzeigen hat.

Bemerkenswert finde ich, dass du die Fehler als solche bzw. die Fehlerinformation und deren HTML-Darstellung trennen willst (so verstehe ich es). Das ist auch durchaus sinnvoll. So kann man Fehler, wie beispielsweise SQL-FehlerCodes, die man einem User (auch saus Sicherheitsgründen) nicht zumuten will, zwar Loggen, aber als allgemeinen Fehler auf der Oberfläche ausgeben.

Weiter so ))
mhmm, du schreibst, das der Frontcontroller hier viel Verarbeitet.
Aber letztendlich splittet er ja nur (zu mindest vor meinem Geistigen Auge) die URL und ruft anhand eines Vorher Konfigurierten Schemas das Model auf (MVC?).
So, da muss der FrontController ja letztenendes nich viel machen, oder täusche ich mich?!

Das mit den Fehlern, kommt daher das wenn auf ner Seite mal Plötzlich eine Exception geworfen wurde dann sieht das sehr unschön aus und is auch ncih besonders sicher.
Außerdem würde da ja auch zum Beispiel ein ERROR 404 darunter fallen.

Naja gut ich werd mich nochmal daran setzen.
Danke aber erstma bis hierhin, dieses Forum is echt Klasse

Ok, jetzt hab ich nochmal sozusagen den Weg vom Request bis zur Ausgabe veranschaulicht:
__________________

Geändert von kampfgnom (02.11.2007 um 16:03 Uhr).
kampfgnom ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 02.11.2007, 17:18 Nach oben    #17
Benjamin Steininger
 
Benutzerbild von robo47
 
Registriert seit: 02.06.2005
Ort: weiher im tiefsten Odenwald
Beiträge: 1.180
Standard

nach dem Frontcontroller sollte denke ich erstmal der Controller des Moduls kommen und der nutzt dann betreffende Models und unter umständen, umleitung, fehler etc kann es von dort aus dann wieder zu einem anderen controller gehen der wiederrum Models nutzt und dann irgendwann am ende kommt dann aufgerufen aus dem Controller des letzen Moduls der aufruf des Views (der wiederrum kann eine templateengine nutzen) und es kommt zu Ausgabe (was ja alles sein kann von html über xml [feeds, sitemap], pdf, csv, txt ...... lässt sich fortsetzen)
robo47 ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 02.11.2007, 19:59 Nach oben    #18
Gabriel
 
Registriert seit: 27.09.2006
Ort: Radebeul
Beiträge: 407
Standard

Zitat:
Zitat von robo47 Beitrag anzeigen
nach dem Frontcontroller sollte denke ich erstmal der Controller des Moduls kommen und der nutzt dann betreffende Models und unter umständen, umleitung, fehler etc kann es von dort aus dann wieder zu einem anderen controller gehen der wiederrum Models nutzt und dann irgendwann am ende kommt dann aufgerufen aus dem Controller des letzen Moduls der aufruf des Views (der wiederrum kann eine templateengine nutzen) und es kommt zu Ausgabe (was ja alles sein kann von html über xml [feeds, sitemap], pdf, csv, txt ...... lässt sich fortsetzen)
Mhmm, das hab ich jetzt nicht verstanden...wie meinst du das mit Module?
Also zum Beispiel News modul Blog modul? aber das is doch letztendlich das Model, oder hab ich da was falsch verstanden?

Is schon gut das ich hier nochmal Frage
__________________
kampfgnom ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 02.11.2007, 20:18 Nach oben    #19
Benjamin Steininger
 
Benutzerbild von robo47
 
Registriert seit: 02.06.2005
Ort: weiher im tiefsten Odenwald
Beiträge: 1.180
Standard

meines Wissens nach, (z.b. ZendFramework macht es so)
, gliedert sich ein Modul in 2 Teile, seinen Controller und sein Model das Model ist für die Daten zuständig, auslesen aus der db, reinschreiben etc ...
im Controller hast du aber verschiedene Methoden für verschiedene Aktionen, mal ein einfaches Beispiel:

Code:
class BlogController
{

	indexAction()
	{

	}
	showEntryAction()
	{

	}
	showCategorysAction()
	{

	}
	showTagsAction()
	{

	}
}
und aus diesen Methoden heraus wird dann auf die Models zugegriffen.

Beim ZendFramework wertet der FrontController über Routen die Url aus und erkennt passend welche Methode im welchem Controller aufgerufen wird. Die Arbeitet das ganze dann ab und danach wird der View genutzt zur Ausgabe.
robo47 ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 02.11.2007, 21:28 Nach oben    #20
Johannes Müller
 
Benutzerbild von $traight-$hoota
 
Registriert seit: 15.09.2005
Ort: Königreich Flieden
Beiträge: 521
Standard

Ob man Module verwendet oder nicht und was in ein Modul reinkommt ist imo erstma nicht so wichtig.
Aber die Geschäftslogik besteht beim MVC-Prinzip nicht nur aus einem Frontcontroller, der wirklich nur als Einstiegspunkt dient und die Abarbeitung eines Request in Gang setzt. Vielmehr gibt es "normale" Controller, wie Benjamin schon geschrieben hat, die sich um die direkte Verarbeitung eines Requests kümmern. Je nach Art des Request ruft der Frontcontroller den zugehörigen Controller quasi als Fachbearbeiter auf. Der kümmert sich dann darum, dass alle zur Ausgabe nötigen Daten beschafft und aufbereitet werden, gegebenenfalls leitet er dabei Unteraufgaben an weitere Controller weiter, das ganze nennt man dann .
Ich vermute, Du hast diese Aufgaben dem Model zugeschrieben, aber das ist in erster Linie eben nur als Datenmodel gedacht und enthält selber keine weitergehende Datenverarbeitung. An dieser Stelle ist es zwar mitunter strittig, was im Model an Verarbeitung erfolgen und was im Controller geschehen sollte, aber das ist eher nebensächlich. Die Aufgabe des Model ist einfach, die Daten darzustellen, während sich der Controller um die Verarbeitung kümmert.
__________________
Weißt Bescheid - Scheiß wie weit
$traight-$hoota ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Seitenstruktur Verwaltungssoftware trefixxx Anwendungsdesign / Softwarearchitektur 9 01.03.2008 13:36
[Design] CMS-System: Seitenstruktur mepeisen PHP-Programmierung 19 30.07.2007 09:10
Anwendung unter PHP 5 lauffähig machen, Herangehensweise, Erfahrungen Ben PHP-Programmierung 12 02.02.2007 16:22


Alle Zeitangaben in WEZ +2. Es ist jetzt 19:05 Uhr.


Powered by vBulletin® Version 3.7.3 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22