Ankündigung

Einklappen
Keine Ankündigung bisher.

Design Patterns in PHP

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Design Patterns in PHP

    Hallo zusammen

    Kennt jemand paar gute Links wo das Thema "Design Patterns" , speziell in PHP, detailiert unter die Lupe genommen wird?

    Hab mir jetzt 2 Bücher darüber bestellt, die müssen aber erst vom Verlag nachgeliefert werden - laut Versandhandel mind. 3-4 Wochen Wartezeit und wollte mich deshalb bissl via Internet einlesen - bin jedoch noch nicht auf umfangreiche Informationen gestossen...

    Wäre dankbar für Links!

    Gruss aus der Schweiz
    ReatKay

  • #2
    Guck dir mal die Seite von adveture-php-framework an, vielleicht findest du da was interessantes.

    Adventure PHP Framework - Startseite

    Kommentar


    • #3
      Hui Cycap

      Danke für die rasche Antwort, interessantes Framework... aber ich such eigentlich mehr Hintergrund-Infos bzw. Step-by-Step Lernmaterial zum Thema "Design Patterns"... aber handkehrum schau ich mir jetzt mal das Framework genauer an ^^

      Danke dir

      Kommentar


      • #4
        Hallo,

        Echte PHP Patterns gibt es keine soweit ich weiß. Pattern sind immer Anwendungsbezogen und daher unabhängig von der Sprache.
        Aber eine Seite die Patterns in PHP zeigt:

        start [phpPatterns]

        Und dann wäre da noch mein Browsergame was ich nie fertiggestellt habe. Siehe diesen Thread: http://www.php.de/ich-biete-ein-php-...owsergame.html

        Mach blos nicht den Fehler unbedingt Patterns verwenden zu wollen, sobald du sie erlernt hast. Entwurfsmuster bedeuten immer erstmal einen Mehraufwand. Der Vorteil kommt erst dann zu tragen, wenn sich deine Anwendung an diesen Punkten (dort wo ein Pattern verwendet wurde) erweitern werden.

        Gruß Thomas

        Kommentar


        • #5
          Hi Thomas

          Ja mir ist klar, dass man mit Design Patterns eine Applikation in vorgefertigte Muster drängt... ich bin selbst nicht ein Fan von Mustern - da sie einfach zu generalistisch sind.

          Das Problem ist jedoch: Ich arbeite in einem Betrieb und wir müssen im Auftrag eines Kunden eine Applikation für ihr Intranet entwickeln - und von meinem Vorgesetzten wird verlangt, dass ich jegliche Klassen als Patterns erstelle...

          Ich hatte gestern schon eine 2-stündige Diskussion mit ihm und als Schlusspunkt stand fest: Mach's so wie ich's dir sage oder such dir nen andren Job Und nun ja, ich hab' keinen Abschluss... das einzige was ich an Qualifikationen habe, ist Erfahrung im Bereich First-Level-Support (Clients & MS Server 2003), sowie PHP/XHTML/CSS/MySQL.... nen andren Job find' ich also ned so schnell - ergo muss ich halt mit Patterns arbeiten

          Kommentar


          • #6
            Hi,

            Das zeugt natürlich von Unkenntnis Seitens deines Chefs. Es macht gar keinen Sinn alles in Muster stecken zu wollen. Da ihr sehr wahrscheinlich schon eine Analyse der Anforderungen habt, müsst ihr "nur" die Stellen finden, an denen ihr Erweiterungen/Wartungen erwartet. Diese Stellen sollten dann auf Entwurfsmuster aufbauen. Alles andere ist überflüssig und vergrößert nur den Code und den Aufwand ohne Mehrnutzen.
            Zumal sich eh nicht jede kleinste Klasse sinnvoll in ein Pattern unterbringen lässt.
            Wenn du noch eine Buchempfehlung brauchst: Martin Fowlers Patterns in Enterprise Applications ist lesenswert. Link: Amazon.de: Patterns für Enterprise Application-Architekturen.: Martin Fowler,David Rice,Matthew Foemmel: Bücher

            Gruß Thomas

            Kommentar


            • #7
              Mhn ja, mein Chef hat eben effektiv wirklich keinen Plan von Entwicklung - vor allem ned in PHP... er hat sich sein "Fach-(Un)wissen" aus halbwegs seriösen Seiten zusammengesucht und meint jetzt, auf Grund von Aussagen wie "Design-Patterns bringen Struktur in ihren Code" , dass man wirklich alles in Muster drücken sollte...

              Btw: Danke nochmal für den Code Konnte mir da doch noch einiges "abschauen" bzgl. Klassenaufbau

              Gruss
              ReatKay

              Kommentar


              • #8
                Hm, das klingt jetzt so als wäre der Einsatz von Design Pattern immer ein riesiger Mehraufwand.
                Man kann Design Pattern aber auch einfach als Lösungsbaukasten sehen. Viele Probleme beim programmieren tauchen so oft auf, dass es dafür Standardlösungen gibt - wenn ich also ein Problem habe schaue ich mir erstmal kurz den Patternkatalog ( in meinem Kopf ) durch.

                Natürlich ist das was dein Chef sagt Quatsch. Zwanghaft ein Pattern verwenden zu wollen ist logischerweise nicht sinnvoll...

                (Ich schreib das jetzt nur, weil das hier im Thread so klang, als wären Muster eine lästige Belastung die man nur in Sonderfällen braucht. Sie können aber eben auch eine Arbeitserleichterung sein...
                [URL="https://www.quizshow.io/"]Create your own quiz show.[/URL]

                Kommentar


                • #9
                  Hi,

                  Nein so sollte das nicht rüberkommen. Sobald man eben Erweiterungen/Wartungen an diesen Stellen benötigt, sind sie eben eine enorme Hilfe. Speziell im Bereich Vererbung kann man da einiges gut machen (Decorator-Pattern z.B.), um die Wartung zu vereinfachen.

                  Wenn ich aber nun ein Pattern an einer Stelle einsetze, wo ich es nicht brauche weil sich dort eh nichts verändern wird und der Aufwand von vornherein keine große Sache ist, dann sind Muster dort oft "oversized".

                  Ich brauche z.B. kein Strategy-Muster anwenden, wenn ich eh nur einen Algorithmus verwende. Dann kann ich diesen direkt in der Klasse implementieren, die diesen benötigt und muss keine zwei Klassen dafür schreiben.

                  Nur ums nochmal zu verdeutlichen: Pattern sind toll, aber man darf sich da einfach nicht reinsteigern, und sie sind auch keine Allzwecklösungen und sie müssen schon garnicht strickt nach Buchvorlage übernommen werden. Meistens sind die Anforderungen/Gegebenheiten eh etwas anders und dann sollte und muss man sie sich eben anpassen.

                  Gruß Thomas

                  Kommentar


                  • #10
                    Nun ja, hab ja jetzt mal 2 Bücher bestellt und les' mich grad in einen Framework-Code auf OOP-Basis (u.A. mit Verwendung von Design Patterns) ein...

                    Wie gesagt, meine Kentnisse über Design Patterns sind enorm gering: Ich weiss was ein Design-Pattern is, damit hat's sich aber schon. Ich hab' jetzt auch n paar Beispiele gelesen, Problem nur: Es sind reine Beispiele, ohne thereotische und praktische Erklärung: Wieso das, weshalb auf diesem Weg etc.

                    Ich hab' mir jetzt z.B. start [phpPatterns] mal genauer angesehen. Ich verstehe zu meinem Erstaunen den Text gut, aber ich denke mal, bei vielen der Erklärungen fehlt mir der Erfahrungswert bzw. auch die grösseren Kenntnisse über OOP.

                    Ich kann Klassen bauen, weiss wofür sie da sind, kann Objekte instanzieren, kenne Interfaces, hab Ahnung von Kapselung, Polymorphie... aber irgendwie scheint das so direkt nicht zu reichen.

                    Nun ja, braucht halt alles seine Zeit... dumm halt nur dass sie mir im Moment von meinem Arbeitsgeber nicht gegeben wird...

                    Kommentar


                    • #11
                      Hi,

                      Zur Einstieg eignet sich das Singleton Pattern sehr gut. Es ist aber gleichzeitig auch ein umstrittenes Pattern, weil es gegen einen Leitsatz verstößt: keine Globalen Zugang zu Objekten/Variablen.

                      Anwendungsbeispiel:
                      Datenbankklasse oder Loggerklasse

                      Nutzen:
                      Es wird sicher gestellt, dass es immer nur ein Objekt dieser Klasse gleichzeitig gibt und es wird ein globaler Zugriff darauf ermöglicht.

                      Motivation:
                      Bei einer Datenbankklasse möchte man selten mehrere Verbindungen gleichzeitig aufbauen, sondern immer die bestehende Verbindung verwenden (Beschränkung der maximalen Verbindungen etc).

                      Umsetzung:
                      Der Konstruktor der Klasse wird als "private" gesetzt, somit ist es nicht möglich, Objekte dieser Klasse zu erzeugen.
                      PHP-Code:
                      $MyObject = new MyClass(); // wird nicht funktionieren 
                      Damit man aber nun ein Objekt erzeugen kann, wird eine statische Klasse eingefügt, welche einem ein Objekt auf diese Klasse zurückgibt. Es wird also per new ein Objekt erzeugt und zurückgegeben. Gleichzeitig wird in einer statischen Klassenvariable dieses Objekt hinterlegt, damit du bei späteren aufrufen der GetInstance Methode prüfen kannst, ob bereits ein Objekt besteht und wenn ja, dann gibst du das vorhandene zurück und erzeugst kein neues.
                      PHP-Code:
                      $MyObject MyClass::GetInstance(); 
                      Gute Kenntnisse über Klassen sind für Entwurfsmuster pflicht, die scheinst du ja zu haben. Alles andere ist einfach nur verstehen. Das Buch "Entwurfsmuster von Kopf bis Fuß" bringt sehr anschauliche Beispiele und kann ich ebenfalls sehr empfehlen. Das vorher genannte richtig sich eher an erfahrenere Programmierer.

                      Gruß Thomas

                      Kommentar


                      • #12
                        So, jetzt ist es Zeit für ein finales Danke

                        Die Bücher sind da und mithilfe eurer Anregungen sehe ich so langsam den Sinn hinter den Patterns (obwohl mein Chef immernoch stur auf seinen Wünschen verharrt)

                        Danke!

                        Kommentar


                        • #13
                          Ich wollte nur mal anmerken, dass Designpatterns keine Implementierung darstellen und daher eigentlich keine speziellen Informationen auf Sprachbasis braucht.

                          Wenn du aber Lesematerial suchst kann ich das hier empfehlen - hab ich mal verschenkt:
                          Amazon.de: Entwurfsmuster von Kopf bis Fuß: Eric Freeman,Elisabeth Freeman,Kathy Sierra: Bücher

                          Kommentar


                          • #14
                            Zitat von pacey Beitrag anzeigen
                            Ich wollte nur mal anmerken, dass Designpatterns keine Implementierung darstellen und daher eigentlich keine speziellen Informationen auf Sprachbasis braucht.

                            Wenn du aber Lesematerial suchst kann ich das hier empfehlen - hab ich mal verschenkt:
                            Amazon.de: Entwurfsmuster von Kopf bis Fuß: Eric Freeman,Elisabeth Freeman,Kathy Sierra: Bücher
                            Hi,

                            Einen Thread nach einer Woche hochzuholen ohne neue Informationen beizutragen finde ich "low".

                            Gruß Thomas

                            Kommentar


                            • #15
                              Und der Buchtip war auch schon gegeben
                              Aber trotzdem: Danke

                              Kommentar

                              Lädt...
                              X