 |
| Hinweise |
Willkommen im TP-Hilfe-Forum!Dies ist ein Forum zu den Themen Photoshop, Dreamweaver, Flash, Selbständigkeit und mehr, in dem Du Hilfe, Anleitung oder eine Lösung zu Deinen Problemen erhältst. Aktuell bist Du in unseren Foren als Gast mit reinen Leserechten unterwegs. Wenn Du Dich registrierst, kannst Du eigene Themen verfassen, deine Frage stellen und privat mit anderen TPlern kommunizieren. Weitere Foren werden zugänglich, und Du wirst – falls gewünscht – per Mail über neue Beiträge informiert. Die Registrierung ist schnell und kostenlos. Sollten bei der Registrierung Fragen auftauchen, reicht ein Klick in unsere Hilfe - Häufig gestellte Fragen oder eine kurze Mitteilung an das Support-Team. Viel Spaß bei Traum-Projekt.com |
01.11.2007, 17:14
|
#1
|
|
TP-Moderator
Registriert seit: Jul 2001
Ort: Regensburg / Landshut
|
MVC mit PHP5
Hallo,
Es steht ein größeres PHP-Projekt an: Für ein Veranstaltungsdisplay soll ein Backend geschaffen werden, in dem User News, weitere User, Admins, Konfigurationen usw. entsprechend Ihren Berechtigungen anlegen und verwalten können.
Für dieses Projekt will ich erstmals PHP5 und am liebsten das MVC-Konzept verwenden. Gibt es gute Ressourcen im Internet, die Möglichkeiten zur Implementierung dieses Konzeptes beschreiben? Habt Ihr Erfahrungen mit Frameworks?
Bitte postet alles, was Ihr mit PHP5 in Verbindung mit MVC wisst und erfahren habt  Vor allem im Hinblick auf ein schönes Usermanagement mit Berechtigungsvergabe...
Vielen Dank im Voraus!
Levis
Edit: Auch AJAX sollte einbindbar sein...
|
|
|
01.11.2007, 17:33
|
#2
|
|
TP-Veteran
Registriert seit: Jan 2002
|
Hallo Levis!
Mein von mir immer wieder gern zitiertes DWARF-System (es ruhe in Frieden) implementiert MVC sehr konsequent und gleichzeitig einfach. Obwohl die Konzipierung des Systems mittlerweile schon fünf Jahre zurückliegt, würde ich eine größere Webanwendung nach wie vor vom Grundprinzip her genauso aufbauen. Ich glaub es gibt bisher kein besseres Konzept. Zum Thema MVC mit PHP bzw. PHP-basierten Web-Frameworks kann ich dir auf jeden Fall einiges erzählen. Im Detail kenn ich zwar nur mein eigenes System, aber von dem bin ich dermaßen überzeugt, dass ich ohne Hemmungen so darüber rede, dass es schon beinahe überheblich wirkt  . Du kannst ja mal im Forum danach suchen, ich hab im Lauf der Jahre schon etliches dazu geschrieben.
Zwischen MVC und Usermanagement/Berechtigungen erkenn ich allerdings gerade keinen Zusammenhang, das ist doch ein völlig anderes Thema. Was meinst Du da genau?
|
|
|
01.11.2007, 18:13
|
#3
|
|
TP-Junior
Registriert seit: Oct 2007
|
Hallo,
wieso entwickelst du nicht unter ASP.NET, wenn es etwas "Größeres" sein soll und du sowieso zu Microsoft neigst? PHP wäre mir nicht ernst genug, wenn es um Portale mit vielen Besuchern ginge.
Unseren Großkunden kann man z.B. gar nicht sowas wie PHP andrehen, denn die PHP-Technologie ist veraltet, schmutzig durch etliche fehlende Kontrollroutinen und viel zu unübersichtlich, was den Gesamtaufbau der Sprache anbelangt.
Gruß
|
|
|
01.11.2007, 19:50
|
#5
|
|
TP-Urgestein
Registriert seit: Nov 2003
Ort: NRW
|
Zitat:
Zitat von Jil
Unseren Großkunden kann man z.B. gar nicht sowas wie PHP andrehen, denn die PHP-Technologie ist veraltet, schmutzig durch etliche fehlende Kontrollroutinen und viel zu unübersichtlich, was den Gesamtaufbau der Sprache anbelangt.
|
Sowas zu sagen, wenn man im Gegenzug von M$ spricht ist schon der Knaller.
Hut ab.
Sorry für's OT.
|
|
|
01.11.2007, 20:22
|
#6
|
|
TP-Veteran
Registriert seit: Jan 2002
|
Ganz aus der Luft gegriffen ist die Kritik offenbar nicht (siehe Wikipedia), allerdings würd ich gern wissen, für welche Kategorien von Projekten das tatsächlich spürbar ins Gewicht fällt. Ausserdem werden die Schwachpunkte ja nicht ignoriert, sondern immer wieder was verbessert. Und nicht zuletzt: Man kann auch in "schlechten" Sprachen gute Programme schreiben, und ebenso in "guten" Sprachen schlechte Programme.
|
|
|
01.11.2007, 22:59
|
#7
|
|
TP-Junior
Registriert seit: Oct 2007
|
@webcreate: Deine Abneigung gegenüber MS mag schön und gut sein, dennoch solltest du die Fakten, und somit auch die Vorteile von ASP.NET nicht außer Acht lassen, die sich gerade bei größeren Projekten bemerkbar machen. Solch bodenlose Aussagen beruhen nur darauf, dass man nicht über den Tellerrand von PHP gucken kann oder gar will. Informiere dich genauer über die .NET-Technologie im Web-Bereich und bring dann bitte bessere Argumente.
@seb: Die Vorteile hat vor allem der Entwickler, ASP.NET ist von Grund auf ausgereifter und mächtiger. Dann macht die klare Ordnung der Web-Library viel aus: Reines OOP bei C# ist recht menschennah und praktisch, zusätzlich dazu hat man direkten Zugriff auf die HTML-Elemente. Nur ist das alles mit einem gewissen Kostenfaktor verbunden, den man nicht jedem Kunden in Rechnung stellen kann, besonders wenn MSSQL ins Spiel kommt.
Gruß
|
|
|
02.11.2007, 00:57
|
#8
|
|
TP-Insider
Registriert seit: Aug 2002
Ort: Sinsheim
|
hm nunja dann doch ein Kommentar zur ASP vs. PHP Diskussion.
ASP: ja wenn in einer reinen MS Umgebung und wo man eben die MS spezifischen Features braucht - Mag ich nicht hat aber doch seine Berechtigung
PHP: nunja, die klassische Allzweckwaffe - weder schmutzig, noch schlecht aber eben ein anderes Konzept als ASP.
Allerdings darf man auch die anderen Techniken nicht außer Acht lassen.
Wenn man eine etablierte Enterprise Technologie einsetzen will sehe ich da eher Java mit den Erweiterungen JSF, JSP, Servlets und Frameworks wie Struts im Vorteil, sowohl gegen PHP als auch gegen ASP.
Außerdem sind ja Ruby on Rails und das Django Projekt (Python) auch noch im Rennen für Webanwendungen.
Schließlich bleiben dann auch noch die Sachen die schon lange am Markt sind wie Perl und C(++) über CGI mit denen sich auch Webanwendungen realisieren lassen. Zu Perl gibts zum Beispiel auch einen ganz aktuellen c't Artikel zu einer Perl-Template-Engine.
Alle diese Techniken haben sicherlich ihre Berechtigung, und für so gut wie jede gibt es noch eine Menge Frameworks mit denen man spezifische Ansätze was Design (z.b. MVC - yeah, Verweis zum Topic  ) und so weiter angeht, verfolgen kann.
Bei dieser Auswahl an Techniken und Frameworks für selbige ist es klar, dass jeder sein gewissen Vorlieben hat, schließlich kann man nicht alle Techniken kennen und findet die eigenen immer den anderen überlegen.
In der Industrie ist es dann auch noch so dass hinter ASP und Java eben 2 riesige Firmen stehen MS & SUN so dass gerade von nicht IT nahen Firmen eher diesen Techniken vor dem "Hobbyprojekt" PHP bevorzugt werden.
Und ob jetzt eine gute & sichere oder eine schlechte & unsichere Anwendung dabei herauskommt hängt aber immer noch an dem jeweiligen Programmierer der die Anwendung erstellt hat und wie gut er "seine" Technik beherrscht.
Und zum Schluss noch ein Artikel was passieren kann wenn man auf eine vermeintlich bessere Technologie wechselt: http://www.oreillynet.com/ruby/blog/...ck_to_p_1.html
Hm, sorry wurde jetzt doch bischen länger 
|
|
|
02.11.2007, 01:37
|
#9
|
|
TP-Junior
Registriert seit: Oct 2007
|
@jow: ASP.NET ist nicht ASP.
Gruß
|
|
|
02.11.2007, 01:53
|
#10
|
|
TP-Moderator
Registriert seit: Aug 2004
Ort: Kaiserslautern
|
Entschuldigung wenn ich mal so Off Topic frage aber ...
... wird das hier jetzt ein -sorry- Schwanzvergleich-Thread? Der Threadersteller hat doch seine Fragen ganz klar gestellt. Was er nicht gefragt hat ist, ob ASP.NET jetzt besser ist als Ruby oder ob MSSQL kostenintensiver als MySQL ist oder welche Frameworks es für Java gibt. 
Es wäre also schön, wenn Ihr On Topic bleiben könntet. Für Diskussionen welche Sprache besser ist hat das TP andere Boards im Angebot.
Danke!
__________________
#.Viele Grüße, Andreas
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
.
|
|
|
02.11.2007, 08:47
|
#11
|
|
TP-Insider
Registriert seit: Aug 2002
Ort: Sinsheim
|
__________________
"Dieses Business ist binär. Du bist eine Eins oder eine Null, lebendig oder tot. Es gibt keinen zweiten Sieger." - Gary Winston (StartUp)
|
|
|
02.11.2007, 08:54
|
#12
|
|
TP-Veteran
Registriert seit: May 2006
|
PHP ->
Die Frameworks sind alle schön und gut, aber das reine MVC-Konzept lässt sich auch ohne umsetzen.
Das dazu
__________________
...Meine Meinung
1984
|
|
|
02.11.2007, 09:04
|
#13
|
|
TP-Insider
Registriert seit: Aug 2002
Ort: Sinsheim
|
Klar kann man MVC auch ohne die Frameworks umsetzen aber gerade wenn man zum ersten Mal was mit MVC machen will kann man sich bei den Frameworks mal anschauen wie man es umsetzen könnte.
__________________
"Dieses Business ist binär. Du bist eine Eins oder eine Null, lebendig oder tot. Es gibt keinen zweiten Sieger." - Gary Winston (StartUp)
|
|
|
02.11.2007, 12:48
|
#14
|
|
TP-Moderator
Registriert seit: Jul 2001
Ort: Regensburg / Landshut
|
So, erstmal danke für die vielen Antworten!
Aber bitte beim Thema bleiben! Ich muss zugeben, dass ich Fan von der .NET-Technologie bin. Trotzdem muss ich deswegen jetzt doch nicht alles mit .NET machen?! Vor allem, wenn die Voraussetzungen auf dem Kundenserver dafür nicht vorhanden sind. Für dieses Projekt ist PHP nötig. Punkt.
Jetzt zu einzelnen Antworten:
Zitat:
Zitat von slayer2205
PHP ->
Die Frameworks sind alle schön und gut, aber das reine MVC-Konzept lässt sich auch ohne umsetzen.
|
Ja klar! Ich bin auch noch nicht sicher, ob ich ein vorhandenes Framework einsetze/einsetzen will. Deswegen suche ich nach Ressourcen, die die MVC-Implementierung in PHP5 erklären bzw. eine Grobumsetzung vorstellen..
Zitat:
Zitat von seb
Zwischen MVC und Usermanagement/Berechtigungen erkenn ich allerdings gerade keinen Zusammenhang, das ist doch ein völlig anderes Thema. Was meinst Du da genau?
|
Ja, ist es. Aber ein Framework, indem das evtl. schon etwas implementiert ist. Bzw. Ressourcen, die ein Usermanagement-Konzept vorstellen.
Ich könnte mir alles selber zusammenprogrammieren, allerdings bin ich mir nie sicher, ob das dann auch eine feine und schöne Lösung ist - oder ob es noch eleganter ginge...
bzgl. DWARF: Ich werd das Forum mal durchsuchen
@jow: danke für die vielen Links! Werde mich mal ans Lesen machen 
|
|
|
02.11.2007, 17:13
|
#15
|
|
TP-Veteran
Registriert seit: Jan 2002
|
Ich skizzier dir mal grob mein Konzept (nicht dass ich das nicht schon öfter hier getan hätte, aber wie gesagt, bin stolz drauf  ):
Die Applikationslogik ist ein Haufen von Klassen, die in irgendwelchen Beziehungen zueinander stehen (was auch sonst...). Diese Klassen enthalten KEINERLEI Code zur Ausgabe, respektive zur Verarbeitung von Eingaben. Die Rollen von Controller und View übernimmt ein "Template Processor", dem für jede Ein- oder Ausgabeoperation je ein Objekt der Applikationslogik sowie ein dazu passendes Template zur Verarbeitung übergeben wird. Der Template Processor führt das Template auf dem Objekt aus und bewirkt damit (je nach Typ des Templates) Eingaben oder Ausgaben. Bevor Verwirrung auftritt: "Templates" werden bei DWARF nicht nur zur Formatierung von Ausgabe, sondern eben auch für Eingabeoperationen verwendet (aber nie beides in einem vermischt). Ein Template ist einfach eine PHP-Datei mit Code, der im Zusammenhang mit einem Objekt einer bestimmten Klasse der Applikationslogik funktioniert und Sinn ergibt, und der "Template Processor" ist im Wesentlichen ein 'include'  (nicht nur ein include, es ist umgeben von einiger Steuerungslogik, aber das include führt letztlich das Template aus, wie ein include eine PHP-Datei eben ausführt...).
Ganz einfaches, schematisches Beispiel:
Ein "Benutzeraccount"-Objekt habe die Methoden "string getPassword()" und "void setPassword(string $password)".
Folgendes wäre ein Ausgabetemplate für die Benutzerobjekt-Klasse, welches das Passwort des Benutzers ausgibt:
Code:
<p>Passwort: <?php echo $object->getPassword();?></p>
Und das hier wäre ein Eingabetemplate, welches das Passwort gemäß Formulareingabe neu setzt:
Code:
<?php
$object->setPassword($_REQUEST['password'];
$object->save();
?>
Eine HTTP-Request an DWARF besteht im Kern immer aus entweder zwei oder vier Argumenten:
Falls eine Seite (oder ander Art von Ausgabe) angefordert wird (also fast immer), übergibt man
1. Die ID des Objekts, von dem man Daten haben will
2. Ein zur Klasse des Objekts passendes Ausgabetemplate, welches die Seite generiert.
Falls mit der Request z.B. ein Formular abgesendet wurde, übergibt man ausserdem:
3. Die ID des "Zielobjekts" der Eingabe
4. Ein passendes Eingabetemplate, das die Eingaben entgegen nimmt und an das Zielobjekt bzw. das Model weiterleitet
Dazu kommen dann natürlich noch die Eingabedaten selbst, und eventuell Steuerungargumente für das Ausgabetemplate (z.B "&page=4" für ein Template, welches eine mehrseitige, mit Paging-Links ausgestattete Sicht auf irgend einen Artikel darstellt).
Damit man auf diese Weise nicht nur ganz primitive Seiten mit Daten von nur einem einzigen Objekt erzeugen kann, sind Template-Aufrufe ineinander verschachtelbar, d.h. in einem Ausgabetemplate kann der Template Processor mit einem anderen Paar von Objekt und Template erneut aufgerufen werden. Auf diese Weise kann man ohne unnötigen Aufwand beliebig komplexe Sichten auf die komplette Anwendung erzeugen. Am Anfang mag sich das komisch und unintuitiv anhören, aber es is wirklich sehr mächtig, elegant und einfach  .
|
|
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
Thema durchsuchen |
|
|
|
| Thema bewerten |
|
|
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.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 00:11 Uhr.
|
 |