Sven Rautenberg: PHP Zend-Framewok Installation nutzen

Beitrag lesen

Moin!

Machs doch mal an einem echten Webbeispiel fest und nicht an diesen hinkenden Enten miot Zweizylindermotor.

Simples Beispiel: Gästebuch mit Kommentarfunktion und Bildupload-Möglichkeit.

Das ist alles andere als ein simples Beispiel. Insbesondere unbekannt ist ja, in welche Infrastruktur sich dein Produkt einfügen muss.

Allerdings: Angenommen, es existiert schon irgendein Shop, ein Blog und weiterer Content auf der Webseite, und jetzt soll dieses Gästebuch ohne weitere Verzwickung einfach nur dazu kommen, aber die Userdatenbank der Admins mitbenutzen... dann heißt es kapseln. Wie ist die Anmeldeinformation durch das Login gespeichert? In $_SESSION? Wrapper-Klasse drumherumlegen. Für alle weiteren externen Informationen, die relevant eingebunden werden sollen, ebenfalls.

Vom Webdesigner soll nachher nur eine neue Klasse "guestbook" instantiiert und eingebunden werden und die Darstellungsmethode aufgerufen werden. Alles andere muss automatisch ablaufen.

Du meinst:

require_once("Zend/Application.php");  
$application = new Zend_Application;  
$application->bootstrap()->run(); // passende Parameter fehlen hier noch  

Noch weniger wird schwierig. Ich glaube auch nicht, dass man ein Gästebuch komplett in EINEN Aufruf packen kann, denn man muss ja mindestens zwei unterschiedliche Requests behandeln: Lesen und Schreiben. Das Admin-Interface braucht auch noch Platz - insbesondere als URL.

Sprich: Du könntest problemlos eine komplette Zend-Applikation liefern, die "einfach nur" eingebunden wird und sich parallel zu den bestehenden URLs in einem eigenen Pfad breitmacht.

Wie teilst Du nun die Klassen auf?

Unabhängig von allem, was schon da ist. Für die Aufgaben, die schon erledigt sind, braucht man anstelle einer eigenen Umsetzung nur den Part, der lesend zugreift, und zwar als Wrapper um die Legacy-Info oder den zugehörigen Legacy-Code. Ggf. wird man um den Code auch herumarbeiten können, indem man direkt eine dahinterstehende Datenquelle (z.B. Datenbanken) über alternative Wege kontaktiert.

Aufgaben:
(Authentifizierung) ist schon vorhanden und muss mitgenutzt werden
(Berechtigungen)    sit schon vorhanden und muss "irgendwie" mitgenutzt werden

Authentifizierung ist also irrelevant, weil das Durchführen derselben dazu führt, dass irgendwo die Berechtigungen des Users abgelegt sind. Insofern ist nur das Berechtigungssystem zu wrappen, ggf. um die neuen Rechte für dein Modul zu erweitern (wo das genau sein sollte, wäre zu analysieren - lässt sich das Legacy-System einfach um weitere Rechte-Kennungen erweitern?).

Detail-Darstellung für Alle, satzweise oder seitenweise
Listendarstellung mit Kurzdaten
Neueintrag
Editierungsmöglichkeit (mit Cookie) innerhalb 24 Stunden
Freigabe/Sperre (Admin)
Kommentar (durch Alle)

Ja und? Die notwendigen Daten sind passend zu modellieren, in einem persistenten Speicher zu halten, und auf Anfrage auszugeben in der jeweils gewünschten Darstellung. Da man es unweigerlich mit mehreren verschiedenen URLs zu tun haben wird, mit denen die Feinheiten der Darstellung gesteuert werden, ist ein existierendes MVC-Framework an dieser Stelle hilfreich, damit man sich direkt um produktiven Code kümmern kann, und nicht zunächst zum hundertsten Male Klassen zur Formularvalidierung schreiben muss.

Vorgabe:
Es sollen nur die Klassen geladen werden, die für das jeweilige Dokument am Browser erforderlich sind.

Irrelevant, aber mit Autoloading automatisch erfüllt.

- Sven Rautenberg

0 101

PHP OOP Klassenaufteilung

Tom
  • php
  1. 0
    Jeena Paradies
    1. 0
      jobo
      1. 0
        Malcolm Beck´s
        1. 0
          jobo
          1. 0

            PHP Zend-Framewok Installation nutzen

            Malcolm Beck´s
            1. 0
              Jeena Paradies
              1. 0
                Malcolm Beck´s
                1. 0
                  Jeena Paradies
                  1. 0
                    Malcolm Beck´s
                    1. 0
                      Jeena Paradies
                    2. 0
                      jobo
                2. 0
                  jobo
                  1. 0
                    Malcolm Beck´s
                    1. 0
                      Jeena Paradies
                      1. 0
                        Tom
                        1. 0
                          Jeena Paradies
                          1. 0
                            Tom
                            1. 0
                              Jeena Paradies
                              1. 0
                                Tom
                                1. 0
                                  Jeena Paradies
                                  1. 0
                                    dedlfix
                                    1. 0
                                      Jeena Paradies
                                      1. 0
                                        dedlfix
                                        1. 0
                                          Jeena Paradies
                                2. 0
                                  Sven Rautenberg
                              2. 0
                                Malcolm Beck´s
                                1. 0
                                  Jeena Paradies
                                  1. 0
                                    Malcolm Beck´s
                            2. 0
                              Malcolm Beck´s
                              1. 2
                                Sven Rautenberg
                                1. 0
                                  Malcolm Beck´s
                                  1. 0
                                    Sven Rautenberg
                                    1. 0
                                      Malcolm Beck´s
                                      1. 8
                                        Sven Rautenberg
                                        1. 0
                                          Malcolm Beck´s
                                        2. 2
                                          dedlfix
                                        3. 0

                                          PHP OOP, wie eine Klassenhierarchie entsteht

                                          Tom
                                        4. 0
                                          Malcolm Beck´s
                                          1. 0
                                            Jeena Paradies
                                            1. 1
                                              dedlfix
                                            2. 1
                                              Sven Rautenberg
                                              1. 0
                                                Jeena Paradies
                                          2. 1
                                            dedlfix
                                            1. 0
                                              Sven Rautenberg
                                              1. 0
                                                dedlfix
                                          3. 2
                                            Sven Rautenberg
                                            1. 0
                                              dedlfix
                                              1. 0
                                                Sven Rautenberg
                                                1. 0
                                                  dedlfix
                                              2. 0
                                                Tom
                                                1. 0
                                                  dedlfix
                                            2. 0
                                              Malcolm Beck´s
                                              1. 0
                                                Sven Rautenberg
                                                1. 0
                                                  Claudius L.
                                                  1. 0
                                                    Claudius L.
                                                  2. 1
                                                    dedlfix
                                                    1. 0
                                                      Claudius L.
                                                      1. 2
                                                        Sven Rautenberg
                                                  3. 0
                                                    Sven Rautenberg
                                                2. 0
                                                  Malcolm Beck´s
                            3. 0
                              Sven Rautenberg
                3. 1
                  Matti Mäkitalo
                  1. 0
                    Malcolm Beck´s
                4. 0
                  Vinzenz Mai
                  1. 0
                    Malcolm Beck´s
                    1. 0
                      jobo
        2. 0
          dedlfix
          1. 0
            Malcolm Beck´s
            1. 0
              Malcolm Beck´s
              1. 1

                Uralt-Software

                Kai345
                • meinung
                1. 0
                  Malcolm Beck´s
                  1. 0
                    Kai345
                    1. 0
                      Malcolm Beck´s
            2. 0
              dedlfix
      2. 0
        Jeena Paradies
  2. 2
    Sven Rautenberg
    1. 0
      Tom
  3. 0
    hotti
    1. 0
      dedlfix
      1. 0
        Jeena Paradies
        1. 2
          dedlfix
          1. 0
            Jeena Paradies
      2. 0
        hotti
        1. 0
          Jeena Paradies
          1. 0
            Tom
            1. 0
              Jeena Paradies
              1. 0
                dedlfix
                1. 0
                  Jeena Paradies
                  1. 0
                    Sven Rautenberg
                    1. 0
                      Jeena Paradies
                      1. 0
                        dedlfix
                2. 0
                  Tom
                  1. 0
                    dedlfix
            2. 0
              Sven Rautenberg
        2. 2
          dedlfix
        3. 0
          hotti
      3. 0
        Matti Mäkitalo
        1. 0
          dedlfix
  4. 1
    jobo
  5. 0
    hotti