Microframework für PHP?

Alles, was nicht direkt mit Python-Problemen zu tun hat. Dies ist auch der perfekte Platz für Jobangebote.
metty
User
Beiträge: 99
Registriert: Samstag 13. Dezember 2008, 19:30

Hallo zusammen,

der Titel sagt eigentlich schon alles, ich bin auf der Suche nach einem Microframework für PHP. Gut, eigentlich müsste ich wegen PHP 1 EUR in die "Bösewörter-Sparbüchse" werfen, aber da (nahezu) alle "Wald und Wiesen" Hoster da draußen, insbesondere die großen, hauptsächlich nur PHP anbieten kommt man fast nicht daran vorbei. Keine Angst, ich kehre Python nicht den Rücken, aber für extrem simple (0815) Websites, die nur aus 4 - 5 Unterseiten (Home, Über, Kontakt, etc.) bestehen, ist PHP ausreichend und zudem noch günstig verfügbar.

Ich habe natürlich erst bei google gesucht und auch ein paar Microframeworks (Limonade, GluePHP und PHP Fat Free) gefunden. Leider machen alle einen nicht sehr ausgereiften Eindruck. Bei einigen scheint der Author auch keine Zeit mehr für die Weiterentwicklung zu haben, weil der letzte Commit über ein Jahr zurückliegt. Das Framework das auf mich noch am besten wirkt ist PHP Fat Free, aber auch hier habe ich aus der PHP Community schon negatives gehört, was die Stabilität angeht. Kennt ihr vielleicht ein PHP-Microframework, das einen ähnlichen Syntax wie Bottle hat und einen in etwa gleichen Funktionsumfang aufweist (Templates, Forms, etc.)?

Freundlichen Gruß
metty
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

metty hat geschrieben:Keine Angst, ich kehre Python nicht den Rücken, aber für extrem simple (0815) Websites, die nur aus 4 - 5 Unterseiten (Home, Über, Kontakt, etc.) bestehen, ist PHP ausreichend und zudem noch günstig verfügbar.
Brauchst Du denn da wirklich Dynamik? Ansonsten könntest Du ja auch statische Seiten basteln oder diese offline generieren lassen. Iirc gabs da ein auf werkzeug basierendes Tool, das so etwas realisiert hat. Vermutlich gibts da aber auch viele andere :-)

Zu PHP-Mini-Frameworks kann ich Dir leider nichts sagen.
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
metty
User
Beiträge: 99
Registriert: Samstag 13. Dezember 2008, 19:30

Hyperion hat geschrieben:Brauchst Du denn da wirklich Dynamik?
Kommt zwar auf das Projekt an, aber manchmal benötige ich Dynamik...
Oh man, je länger ich mir wieder PHP ansehe, desto mehr erinnere ich mich an die Gründe warum ich zu Python gewechselt bin... :twisted:
Darii
User
Beiträge: 1177
Registriert: Donnerstag 29. November 2007, 17:02

metty hat geschrieben: Kennt ihr vielleicht ein PHP-Microframework, das einen ähnlichen Syntax wie Bottle hat und einen in etwa gleichen Funktionsumfang aufweist (Templates, Forms, etc.)?
Hmm...PHP vielleicht? Ganz ehrlich sowas braucht man bei PHP nicht. PHP hat eine super Templatesprache eingebaut (PHP). Dispatching läuft über einzelne Dateien.
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Darii hat geschrieben:[Hmm...PHP vielleicht? Ganz ehrlich sowas braucht man bei PHP nicht. PHP hat eine super Templatesprache eingebaut (PHP). Dispatching läuft über einzelne Dateien.
Naja, so super ist PHP als Template-Sprache nicht - eben weil es zu mächtig ist und sich nicht auf das Handling von Daten beschränkt. Und Dispatching über einzelne Dateien klingt auch grausam :-D
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
metty
User
Beiträge: 99
Registriert: Samstag 13. Dezember 2008, 19:30

Hyperion hat geschrieben: Naja, so super ist PHP als Template-Sprache nicht - eben weil es zu mächtig ist und sich nicht auf das Handling von Daten beschränkt. Und Dispatching über einzelne Dateien klingt auch grausam :-D
Das deckt sich mit meiner Meinung. Ein MischMasch von Template und Logik ist wirklich hässlich, nicht nur der späteren Wartung wegen.
Darii
User
Beiträge: 1177
Registriert: Donnerstag 29. November 2007, 17:02

metty hat geschrieben:
Hyperion hat geschrieben: Naja, so super ist PHP als Template-Sprache nicht - eben weil es zu mächtig ist und sich nicht auf das Handling von Daten beschränkt. Und Dispatching über einzelne Dateien klingt auch grausam :-D
Mag grausam klingen, so funktioniert PHP aber nunmal. Wenn du das alles an PHP nicht nutzt dann verzichtest du sämtliche „Vorteile“ von PHP musst dich aber trotzdem mit den restlichen Nachteilen herumschlagen.
Das deckt sich mit meiner Meinung. Ein MischMasch von Template und Logik ist wirklich hässlich, nicht nur der späteren Wartung wegen.
Entweder du willst was kleines mit PHP oder nicht. Auf die Templatesprache PHP nochmal ein Templatesystem draufwerfen zu wollen ist jedenfalls für eine 5-Unterseiten Homepage etwas übertrieben. Und für alles andere ist PHP imo die falsche Wahl.
burli
User
Beiträge: 1156
Registriert: Dienstag 9. März 2004, 18:22

PHP ist doch ursprünglich als "Template Engine" entwickelt worden. Also eingebetteter Code in HTML für dynamischen Content. Von daher sind Template Engines für PHP eigentlich Nonsens und wurden nur eingeführt, damit "Designer" nicht programmieren lernen müssen, weil man irgendwann auch bei PHP angefangen hat, Code von Design zu trennen. Vielleicht war den Entwicklern die Trennung auch nicht stark genug, keine Ahnung.

Jedenfalls wüsste ich keinen technischen Grund für eine eigene Template Engine für PHP
Das schwierigste beim Programmieren ist, sinnvolle Variablen- und Funktionsnamen zu finden :lol:
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

burli hat geschrieben: Jedenfalls wüsste ich keinen technischen Grund für eine eigene Template Engine für PHP
Stichwort "Sandbox" ;-)
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
lunar

@Hyperion: Was ist mit diesem Stichwort bzw. was hat das mit dem Thema zu tun?
burli
User
Beiträge: 1156
Registriert: Dienstag 9. März 2004, 18:22

Warum soll es eigentlich PHP sein? Ist das irgend eine Anforderung oder liegt es nur an den mangelnden Python Hostern?
Das schwierigste beim Programmieren ist, sinnvolle Variablen- und Funktionsnamen zu finden :lol:
lunar

@burli: Diese Frage wurde bereits im ersten Beitrag erläutert und geklärt. Die Höflichkeit gebietet, dass Du die Beiträge in einer Diskussion, und insbesondere den Eingangsbeitrag, zur Gänze liest, bevor Du Dich zu Wort meldest.
burli
User
Beiträge: 1156
Registriert: Dienstag 9. März 2004, 18:22

Sollte nicht unhöflich sein. Ich hab es gestern gelesen und heute vergessen. Die meisten Provider bieten Python zumindest via CGI an.
Das schwierigste beim Programmieren ist, sinnvolle Variablen- und Funktionsnamen zu finden :lol:
lunar

@burli: Allerdings oft uralte Versionen, zudem fehlen fast immer wichtige Drittbibliotheken.
Benutzeravatar
lynadge
User
Beiträge: 112
Registriert: Sonntag 4. April 2010, 10:17

@topic: Probiere doch mal http://kohanaframework.org/ hab gehört das soll ganz in Ordnung sein.

Obwohl du für dein Vorhaben nicht wirklich ein Framework brauchst. Das wäre Verschwendung von Ressourcen. Wie Kanonen auf Spatzen oder Mücke und Elefant oder ... ach du weist bestimmt was ich meine.
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

lunar hat geschrieben:@Hyperion: Was ist mit diesem Stichwort bzw. was hat das mit dem Thema zu tun?
Naja, PHP ist ja eben nicht sandboxed als Template-Sprache. Insofern ist das doch eine technische Einschränkung gegenüber einer gesonderten Template Sprache, wie etwa Smarty und co.
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
lunar

@Hyperion: Ich weiß nicht, was Du unter „sandboxed“ verstehst, aber wenn man darunter versteht, dass man nicht vertrauenswürdigen Code gefahrlos ausführen kann, dann sind auch die üblichen Template-Sprachen für Python gewiss nicht „sandboxed“.

Davon abgesehen ist das im Bezug auf dieses Thema (eine winzige PHP-Seite) auch nicht sonderlich relevant.
metty
User
Beiträge: 99
Registriert: Samstag 13. Dezember 2008, 19:30

burli hat geschrieben:Warum soll es eigentlich PHP sein? Ist das irgend eine Anforderung oder liegt es nur an den mangelnden Python Hostern?
Normal entwickle ich alle meine Webapplikationen mit Python und bin sehr glücklich mit der Sprache. Es kommt aber hin und wieder mal vor, dass jemand nur eine kleine Website (Microsite) und keine große Webapplikation möchte. Hier wäre es natürlich absolut sinnlos ein großes Framework wie Django o.ä. zu verwenden. Da es aber auch bei diesen Microsites oft nicht ganz ohne Dynamik geht, wäre beispielsweise bottle das optimale Framework für meine Belange. Da aber Python von den meisten Hostern eher unzureichend (veraltete Version, keine Drittbibliotheken, nur CGI etc.) unterstützt wird, habe ich mir gedacht, "guckst du halt nach etwas ähnlichem für PHP, weil das ja quasi überall verfügbar ist". Da ich mich aber nicht allzu tief in die Eigenheiten von PHP einarbeiten will, eben weil ich alle meine Projekte mit Python entwickle, wollte ich mir mit einem Microframework etwas Einfachheit und Übersichtlichkeit durch Trennung von Logik und Template bzw. View "erkaufen". Wenn man wie ich relativ lange mit Python arbeitet, möchte man diesen "Luxus" einfach nicht mehr missen. Hier wirkt der PHP-Ansatz alles in eine Datei zu wursteln nicht wirklich schön. Ich gebe auch offen und ehrlich zu, was die tiefergehenden Eigenheiten von PHP angeht bin ich ein Newbie. Mir wäre es sicher unmöglich ein zweites Facebook mit PHP zu entwickeln, aber für eine kleine Website dürften meine Fähigkeiten gerade noch reichen... :wink:

Aber zur Besänftigung der Gemüter, ich wollte mit meiner Frage nach einem Mircoframework für PHP wirklich keine Grundsatzdiskussion anstoßen, ob PHP gut genug ist oder ob es von Anfang an als "Template-Sprache" gedacht war etc., ich wollte mir mit einem Framework lediglich den Umgang mit PHP erleichtern. Nicht mehr und nicht weniger.
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

lunar hat geschrieben:@Hyperion: Ich weiß nicht, was Du unter „sandboxed“ verstehst, aber wenn man darunter versteht, dass man nicht vertrauenswürdigen Code gefahrlos ausführen kann, dann sind auch die üblichen Template-Sprachen für Python gewiss nicht „sandboxed“.
Ich dachte da eher an Zugriffe auf Daten, die der Entwickler nicht vorgesehen hat. Das von Dir genannte geht ja noch einen Schritt weiter, wobei jinja2 da afaik schon etwas bietet.
Davon abgesehen ist das im Bezug auf dieses Thema (eine winzige PHP-Seite) auch nicht sonderlich relevant.
Stimmt. Das war ja aber auch keine Antwort zum Topic, sondern auf Burlis Beitrag zuvor.
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
burli
User
Beiträge: 1156
Registriert: Dienstag 9. März 2004, 18:22

Ich probieren gerade CakePHP aus. Ist zwar kein Microframework mehr, aber ich finde es gar nicht mal schlecht. Und soweit ich das sehen verwenden die da keine eigene Template Engine sondern tatsächlich PHP für die Templates
Das schwierigste beim Programmieren ist, sinnvolle Variablen- und Funktionsnamen zu finden :lol:
Antworten