vapita: Inwieweit sind eigene PHP Frameworks sinnvoll?

problematische Seite

Hallo liebe Gemeinde,

ich arbeite inzwischen seit vielen Jahren mit PHP, aber auch HTML, CSS und Javascript. Angefangen habe ich damals noch mit haufenweise Spaghetti-Code und ganz ohne PHP-Klassen, Namespaces oder sonstiger Struktur.

Erste Kontakte zu strukturiertem Code hatte ich mit SimpleMVC 1.0 und habe gelernt, wie man das MVC-Pattern anwendet. Inzwischen arbeite ich hauptsächlich mit Symfony, wenn es um Kundenaufträge geht. Ich ertappte mich jedoch immer wieder dabei, wie ich faul wurde und gar nicht mehr darüber nachdachte, was da eigentlich im Hintergrund passiert.

Also begann ich, auf Basis des SimpleMVC ein eigenes PHP Framework zu entwickeln. Das ist inzwischen ein gutes Jahr und mein Framework - ich taufte es auf den Namen "Ringhorn" - nimmt allmählich Gestalt an. Ich habe bei der Entwicklung viel gelernt, besonders in Bezug auf die Wiederverwendbarkeit und auf die gemeinsame Entwicklung.

Ich frage mich jedoch, inwieweit es die Mühe wert ist, das Framework für andere interessant zu machen, da es ja bereits einige große und etablierte Frameworks gibt. Ist es also nur Spielerei oder sollte man da am Ball bleiben?

Beste Grüße

Vapita

akzeptierte Antworten

  1. problematische Seite

    Ich frage mich jedoch, inwieweit es die Mühe wert ist, das Framework für andere interessant zu machen, da es ja bereits einige große und etablierte Frameworks gibt.

    Das Framework eines Einzelkämpfers ist aus Sicht professioneller Nutzer gesehen, uninteressant. Der Einzelkämpfer kann das Projekt einstellen oder morgen abkratzen (habe gerade den Fall, wo jemand mit 41...) und dann steht man da und bekommt keine Updates.

    Stell Dir mal den Spaß vor, es kommt PHP 9 und es fallen Funktionen weg, die in dem Framework verwendet werden… Dann kann man als Nutzer das Framework pflegen oder sein eigenes Projekt neu schreiben. Ich hab das neulich nach der Umstellung auf PHP 8 mit einer kleinen Libary zur Scheibbeleuchtung von Quellcode gehabt. Da war es zum Glück nur eine einzige Stelle aber die Panik war schon groß…

    1. problematische Seite

      Hallo Raketenwilli,

      habe gerade den Fall, wo jemand mit 41…

      Oh je. Dass man alt wird, merkt man so richtig, wenn man außer den Leuten der eigenen Generation auch noch deren Kinder zu Grabe trägt 😢

      Scheibbeleuchtung

      Das ist sicherlich ein Typo oder Autokorrekturartefakt, aber ich komme zum Verzweifeln nicht drauf, was Du hier gemeint haben könntest.

      Rolf

      --
      sumpsi - posui - obstruxi
      1. problematische Seite

        Scheibbeleuchtung

        Das ist sicherlich ein Typo oder Autokorrekturartefakt, aber ich komme zum Verzweifeln nicht drauf, was Du hier gemeint haben könntest.

        Syntaxhighlighting

    2. problematische Seite

      Stell Dir mal den Spaß vor, es kommt PHP 9 und es fallen Funktionen weg, die in dem Framework verwendet werden… Dann kann man als Nutzer das Framework pflegen oder sein eigenes Projekt neu schreiben.

      ja, da ist was dran. Besonders als Einzelkämpfer hat man da allerhand zu tun.

  2. problematische Seite

    Hallo vapita,

    Es gibt genau zwei Gründe, warum man Ringhorn publizieren könnte:

    • es kann etwas, was bekannte Frameworks nicht können
    • die bekannten Frameworks tun irgendwas nerviges, womit Du nicht leben kannst oder willst. Zum Beispiel zu viel Speicher fressen. Oder zu langsam sein. Oder Code mitschleppen, der bei Dir nicht läuft.

    Andernfalls ist es eine von vielen "ich kann das auch" Anwendungen, die keiner beachtet. Du kannst stolz darauf sein, Du kannst Spaß daran haben, du kannst damit auch deine eigenen Anwendungen entwickeln, aber wenn Du etwas publizierst, was andere früher und (vermutlich) besser veröffentlicht haben, ist das vergebliche Liebesmühe. Publikation macht auch richtig Arbeit, denn ein Framework muss man ordentlich dokumentieren, damit andere was damit anfangen können.

    Dass andere besser sind, ist nur eine Vermutung, aber nahe liegend. Denn ältere und bekanntere Frameworks hatten mehr Zeit, Fehler abzuschütteln und Features zu entwickeln.

    Ich habe bei der Entwicklung viel gelernt, besonders in Bezug auf die Wiederverwendbarkeit und auf die gemeinsame Entwicklung.

    Das ist eine durchaus hinreichende Existenzberechtigung für Ringhorn. Aber, wie gesagt, noch kein Grund zum Publizieren.

    Aber lass Dich das nicht vom Publizieren abhalten. Stelle das Repository beispielsweise bei Github bereit und beobachte, was passiert. Die Frage, wie Du Aufmerksamkeit darauf lenkst, musst Du aber für Dich selbst beantworten.

    Rolf

    --
    sumpsi - posui - obstruxi
    1. problematische Seite

      Hallo,

      vielleicht ist das hier gerade eine Gelegenheit, endlich mal die naive Frage zu stellen?

      Was muss ein Framework für PHP (und Weiteres?) eigentlich können?

      LG + Gesundheit
      Localhorst

      1. problematische Seite

        Ich denke, ein Framework ist eigentlich nicht zwingend erforderlich, aber es soll einem in erster Linie die Arbeit erleichtern. Im idealfall zwingt es alle beteiligten Entwickler auf einen gemeinsamen Grundstil ohne jedoch die Kreativität einzuschränken.

        Meine ersten Projekte - ein Onlinebuchungstool für eine Proberaumvermietung und eine Hausverwaltungswebsite - habe ich noch so programmiert, wie es gerade kam. Der Code sah aus wie ein Teller Bunte Knete und ich musste mich später intensiv neu einarbeiten. Ich wusste zum Teil gar nicht mehr, was ich wie und warum tat. Also eine "Freude" für jeden Entwickler.

        Insofern finde ich Frameworks sehr nützlich, wenn man das Rad nicht ständig neu erfinden möchte. Allerdings hängt das wohl auch von der Art des Projekts ab.

      2. problematische Seite

        Hallo localhorst,

        Was muss ein Framework für PHP (und Weiteres?) eigentlich können?

        Daraus kann man entweder einen Endlos-Diskussionsthread machen, oder man bleibt bei: Das, was man braucht 😉

        Es gibt Universalframeworks und es gibt Frameworks, die spezielle Aspekte abdecken. Beides ist ein Framework, und beides hat seinen Sinn.

        Rolf

        --
        sumpsi - posui - obstruxi
        1. problematische Seite

          Hallo Rolf,

          wo ziehst Du die Grenze zwischen Runtime, Framework und CMS?

          LG + Gesundheit
          Localhorst

          1. problematische Seite

            Hallo Rolf,

            wo ziehst Du die Grenze zwischen Runtime, Framework und CMS?

            dazwischen?

            LG + Gesundheit

            Ingrid

          2. problematische Seite

            Hallo localhorst,

            ein CMS ist eine Anwendung. Sie funktioniert out-of-the-box (bis auf Konfiguration) und braucht keine weitere Programmierung. Ein Vergleich mit Framework und Runtime ist daher Quark.

            Andererseits könnte man sich ein spezielles Framework vorstellen, das sich als Plattform zum Entwickeln eigener CMS versteht. Ich habe da von einem diesbezüglichen Perl Framework gehört, nur ist es leider rostig, proprietär und nur für den Autor nutzbar. Und wer kann schon noch Perl?!

            Zwischen Runtime und Framework ist die Abgrenzung unscharf. Lies es Dir selbst durch.

            Rolf

            --
            sumpsi - posui - obstruxi
            1. problematische Seite

              Hallo Rolf,

              ein CMS ist eine Anwendung. Sie funktioniert out-of-the-box (bis auf Konfiguration) und braucht keine weitere Programmierung. Ein Vergleich mit Framework und Runtime ist daher Quark.

              Ich kenne nur QuarkXPress. Und das war imho ein Layoutprogramm ;-p

              CMS sind häufig auch nur Basislösungen, die man dann selber erst fertigprogrammieren™ muss. Deshalb ja meine Frage danach, was ein Framework leisten muss.

              LG + Gesundheit
              Localhorst.

              PS: ich kann übrigens kein Perl.

    2. problematische Seite

      Es gibt genau zwei Gründe, warum man Ringhorn publizieren könnte:

      • es kann etwas, was bekannte Frameworks nicht können
      • die bekannten Frameworks tun irgendwas nerviges, womit Du nicht leben kannst oder willst. Zum Beispiel zu viel Speicher fressen. Oder zu langsam sein. Oder Code mitschleppen, der bei Dir nicht läuft.

      In der Tat war mein Hauptbeweggrund der, dass ich in anbetracht der Fülle an Funktionen und Erweiterungen nur schwer durchgesehen habe, was dieses oder jene Framework eigentlich tut. Ich wollte etwas, das auf meine Bedürfnisse abgestimmt ist und vielleicht auch andere interessieren dürfte, die ähnliche Erfahrungen machten. Die Performance spielte da keine unwesentliche Rolle.

      Tatsächlich habe ich den Code von anfang an auf Github veröffentlicht und auch schon schrittweise eine Dokumentation angefertigt, die jedoch noch viel Aufmerksamkeit benötigt.

      Andere machen es, soweit ich das beurteilen möchte, tatsächlich besser, daher habe ich auch sehr viel bei den "Rosinen" abgeguckt. Allerdings, besonderes während ich an der Doku schreibe, fallen mir dann oft zahlreiche Verbesserungsmöglichkeiten in meinem Code auf. Ich glaube es ist dann für mich so eine Art Anno1404-Übungs-Endlosszenario. Man wird nie fertig, aber man lernt auch nie aus. 😉