Mailinglisten-Archive |
Moin, Henning Heil wrote: > neulich habe hier ich eine ganz herrliche Liste mit php-frameworks gefunden > http://woork.blogspot.com/2008/11/20-great-php-framework-for-developers.html schicke Liste :) Enthaelt zwar nicht alles, was an Frameworks fuer PHP so durchs Web kursiert, aber doch eine ganze Menge (auch sehr unterschiedlicher) Ansaetze. > nur ersehe ich aus der ganzen tollen Liste nicht so unbedingt, welches > framework denn für meine Zwecke am besten geeignet ist. Ne Wikimatrix > für php-frameworks wäre gut :-). Schreib eine und poste den Link :) > - OOP, MVC sind die basics, kann ich mir nicht anders vorstellen > - ein DB abstraction layer macht vieles leichter DB-Abstraction ist nur bedingt nuetzlich - der Normalfall ist, dass du als Entwickler weiszt, fuer welche Plattform deine Anwendung gedacht ist und Queries plattformabhaengig optimierst. Nun unterscheiden sich Optimierungsmoeglichkeiten (und auch die Implementierungen der verschiedenen SQL-Standards sowie zusaetzlicher Features) der jeweiligen Datenbanken teilweise doch recht drastisch voneinander, daher zahlt sich eine Abstraktionsebene bestenfalls aus, wenn man ein OS-Multiplattform-Projekt startet. > - eine template engine muss nicht sein, SMARTY mag ich wenn am liebsten Smarty ist ... diskussionsfaehig. Nett zum Einsteigen in die Materie, praktisch bei groeszeren Anwendungen nur bedingt einsetzbar. Das geht bei expliziter Zuweisung von Variablen an Templates los, die der Programmierer taetigen muss und endet irgendwo beim Thema Performancetuning. Kann man alles machen, muss man aber nicht. Fuer Kleinprojekte mit absehbar wenig Changes in der Oberflaeche mags angehen. > - user-role-management & session-handling etc. ist Pflicht > - der ganze Sicherheitskram sollte mir bis auf die input-Validierung > abgenommen werden, bei letzterem sollte mich das framework unterstützen > - ein klein wenig Erfahrung habe ich mit cakePHP, das kommt mir aber > (insgesamt für diese kleine App zu) mächtig vor Was ist denn in deinem Fall die "kleine App"? Nur mal der Einschaetzung halber ... Letztlich ist es durchaus ein Unterschied, ob man ein Framework fuer das Aufsetzen von anderthalb Standardfunktionalitaeten benoetigt oder ob man damit ganze Hochlastportale a la Yahoo baut - die Anforderungen, die bei letzterem entstehen, haben nur noch wenig mit dem erstgenannten Szenario gemein. > - irgend welcher Kram mit Konsolen a la RoR geht garnicht, PHP im > Texteditor ist gut für mich Wenn du Rails nicht magst, ist vermutlich Symphony auch nichts fuer dich, das ist im Prinzip eine Rails-Nachbildung. Wie ueblich noch ein wenig pessimiert in der Art der Umsetzung, aber die Community ist nett. Btw, ist der Symphony-Hype inzwischen eigentlich wieder ein bisschen abgeklungen? > - das ist wahrscheinlich ein Wunschtraum, aber eine Größe von unter > 500-800kB ohne App wäre doch toll Depends. Also genau genommen: Die Frage ist, was das Framework zur Laufzeit so alles laedt. Was und wie es Dinge zwischenspeichert (auch ueber mehrere Requests und User etc hinweg). Wieviel Last du damit abfackeln kannst, wie stabil die Codebase ist, wie oft APIs geaendert werden und und und. Was nuetzt ein Framework, das bei jedem Aufruf erstmal 600 k von der Platte liest, parst und abarbeitet? Da wird definitiv nichts fixes draus. Mag sein, ein Framework hat ein paar MB Inhalt - aber wenn es eben nur wenige kB je Aufruf einliest und diese Codebase dann auch noch stabil und robust geschrieben ist, hat man daran deutlich mehr Spaß. Du musst ja an einem Framework im Normalfall nichts mehr machen, sondern nur noch deine eigene Anwendung draufsatteln ... > - zweit wichtigstes Kriterium: eine gut funktionierende community, ich > werde viele noob-Fragen haben Das kickt ein paar schicke Frameworks, die leider nur mittelpraechtig mit Doku und Community gesegnet sind. (Wobei sich das deutlich bedingt - gute Doku animiert dazu, ein Produkt zu nutzen ... aber das ist eine andere Baustelle). > - wichtigestes Kriterium: meine ganze App soll nur eine config-Datei > haben und sich ratzfatz in ein Zip packen und verteilen lassen (und auf > den meisten Standard php5/mysql-Umgebungen laufen) Das mit der einen Config-Datei kann je nach Framework-Design zu Problemen fuehren - wenn ich mir ein modulares Framework vorstelle, in der es zwar eine "Zentralconfig" gibt, aber die einzelnen Module im Zweifelsfall noch eigene Konfigurationsmoeglichkeiten mitbringen, kann das zum Beispiel den Vorteil haben, dass fuer das Modul explizit andere Umgebungsvariablen definiert werden koennen, die nur dann interessant werden, wenn dieses Modul auch aktiv im Code genutzt/angesprochen wird. Eine einzige Config kann ziemlich stark aufgeblasen werden, wenn man darin jede Menge unterschiedlicher Module mit Parametern versieht - auch wenn man sie fuer den gerade anstehenden Aufruf nicht benoetigt. Allerdings reden wir hier von einem Framework, und das bedeutet von Hause aus meist zusaetzliche Abstraktionsebenen und Latenzen, nur selten sind Frameworks auf Geschwindigkeit getrimmt. > P.S.: eine Bitte: bestimmt kann man ganz toll riesen Diskussionen über > frameworks führen und tausend Details vergleichen und abwägen und über > architekturelle Feinheiten streiten, ich bräuchte aber eher pragmatisch > Hilfe nach obigen Kriterien ('das könnte was sein', 'das ist deswegen > vermutlich eher nichts'). Dann werfe ich hier direkt mal praktisch verwertbare Tipps nach: Zend Framework ist super. So als Marketingding. In der Praxis freut es mich auch immer, weil es bedeutet, dass ich Arbeit bekomme ;) (Fakten: Instabil, uneinheitliche API, langsam, ich weiß nicht, warum sie einen Quality-Manager fuer das Ding haben, Codequalitaet ist fuer mich was anderes.) Symphony macht nur Spaß, wenn du RoR magst, das aber in PHP haben willst. Praktischer Tipp: Schnapp dir die Frameworks, die dir auf der Liste interessant erschienen, versuche, sie zum Laufen zu bringen und damit Dinge zu realisieren. Benchmarke vergleichbare Endergebnisse. Ueberlege dir, wieviel Einarbeitungsaufwand du jeweils hattest, wie gut das Ding vermutlich skaliert und wieviele Projekte du damit umsetzen wirst. Wenn du das Gefuehl hast, aus dieser Mischung etwas zu bekommen, das sich fuer dich gut anfuehlt, bist du vermutlich auf dem richtigen Weg. HTH Carola 'Sammy' Kummert
php::bar PHP Wiki - Listenarchive