1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

OOP Design Strategie?

Dieses Thema im Forum "PHP" wurde erstellt von aargau, 9. Oktober 2016.

  1. aargau

    aargau Erfahrenes Mitglied

    Hallo zusammen

    Ich habe nun viele Jahre eigentlich keine Projekte mehr mit PHP umgesetzt. Wenn dann nur ein kleines Hilfstool mit PHP in der unsaubersten Variante überhaupt geschrieben.
    Nun interssiere ich mich, vor allem Beruflich wieder deutlich mehr. Vor einigen Jahren als ich noch aktiv php Programmierte habe ich so ein mischding aus OOP (Klassen) und normalen funktionen verwendet um meine Projekte umzusetzen. Heisst in den Klassen war viel HTML und viele komplexere Abfragen, so wirklich OOP war das ganze dadurch nicht mehr.

    Nun, da ich zum einen "Zukunftsdenkend", Effizient so wie möglichst Performant programmieren möchte habe ich mich schon etwas in Design Pattern für PHP eingelesen. So wirklich schlau daraus, bzw. eine goldene Lösung habe ich aber noch nicht gefunden wie man wirklich sauber und einfach Programmiert.

    Meine Strategie im Moment ist:
    --> Klassen die nicht zwingend mehrfach gebraucht werden (bsp. Datenbank) nur einmal zu laden und via construct an klassen zu übergeben weche diese benötigen.
    --> Ausgabe von Fehlern über ein Array, das pro Klasse generiert wird und am Schluss in eine "generateHTML" klasse übergeben wird.
    --> Funktionen die ausgeführt werden können nach aussen möglichst nur true / false zurückgeben.

    Probleme habe ich nun hier aber z.B. bezüglich multilanguage interfaces. Zwar habe ich bis jetzt bei "statischem" text mittels simplen arrays dies auch noch hingekiregt, sobald es aber etwas komplexer wird und ein Text wie "Willkommen zurück BenutzerA" geht, klappt das auch nicht mehr ganz so einfach.

    Gibt es dazu im allgemeine gute vorgehensweisen? Auf Frameworks möchte ich wenn möglich verzichten, da diese oft auch viel Performance brauchen.

    Gibt es irgendwo gute (möglichst deutsche) Tutorials inkl. ein paar Beispielen zu diesem Thema?
     
  2. alxy

    alxy Erfahrenes Mitglied

    Verwende Frameworks! Wie du schon selber merktest wird eine Eigen-Implementierung schnell unübersichtlich beziehungsweise erweist sich als nicht felxibel genug (Mehrsprachigkeit). Über all diese Dinger haben sich die großen Framework-Entwickler schon hinreichend Gedanken gemacht und diese dann entsprechend in das Framework einfließen lassen. Zum Googlen: Laravel, Symfony, ZendFramework. Ich empfehle (und benutze) Laravel.
     
  3. aargau

    aargau Erfahrenes Mitglied

    Danke dir für deine Hilfe.
    Generell wäre ein Framework sicher die beste Lösung, ich denke damit könnte man viele Probelem bzw. Fragen die Stunden lang beschäftigen beseitigen. Allerdings muss ich sagen, dass mir dabei die Performance echt nicht gefällt. Ich habe beim Suchen vorhin ein Benchmark gefunden, welcher beim schlechtesten Framework<40request/s erreicht hatte.
    Ich erreiche momentan mit meinem "Freestyle Pattern" locker über >10 000requests/sek. (bei Pages ohne SQL). Zwar benötige ich für meine aktuellen Projekte niemals so viel, da würden 5-10requests in den Spitzen schon reichen - langfristig habe ich aber ein Projekt in der Pipeline welches eben auch mal etwas mehr User gleichzeitig verarbeiten müsste.

    Generell denke ich aber, dass MVC eine der saubersten Lösungen sein wird - wenn auch nicht ganz so komplex und heftig wie das die meisten Frameworks machen..
     
  4. alxy

    alxy Erfahrenes Mitglied

    Du kannst ja erstmal mit einem Mikro-Framework anfangen, bei Laravel gibts z.B. Lumen: https://lumen.laravel.com/
    Das erreicht laut Webseite 1900 RPS, wie zuverlässig die Quelle ist weiß ich natürlich nicht ;) Der Vorteil ist zudem, dass es noch nicht zu aufgebläht wie die großen Frameworks ist, du aber via Composer fast alle anderen Abhängigkeiten nachladen kannst, solltest du sie doch brauchen. So kann man Lumen Stück für Stück zu einem (vollwertigen) Laravel zusammensetzen.
     
Die Seite wird geladen...