Malcolm Beck´s: PHP Zend-Framewok Installation nutzen

Beitrag lesen

مرحبا

OOP wird nicht leichter, wenn man was anderes macht

Ja stimmt, du machst es mir aber auch nicht unbedingt leicht ;)

Dirk hat nur eine Funktion in seinem Artikel gehabt. Den in ein OOP-Beispiel umzusetzen ist nicht sehr leicht. Oder schwer - dann aber nicht wirklich OOP. :)

Frei nach deiner Empfehlung, alle Funktionen in Klassen zu packen :) So kleine helferlein, wie das Bsp. von Dirk, habe ich mittlerweile dutzende, aber eben nur als Funktionen.

  1. Deine Klasse benötigt ein Konfigurationsobjekt, mit dem die Liste der User-Agent-Werte ausgelesen werden kann, und diese Klasse kann wiederum Unterobjekte benutzen, um sich z.B. an INI-Dateien, XML-Dateien oder Datenbanken anzudocken - oder auch ganz normale PHP-Arrays in Include-Dateien auslesen.

Ich versuche noch die Basics zu verinnerlichen, wie soll ich bei dieser Aufgabenstellung auch nur Ansatzweise durchsteigen?

  1. Eigentlich sollte man hier lieber ein Request-Objekt haben, in dem die aktuellen Zustände des laufenden HTTP-Requests vom Browser gekapselt sind.

Also eine Klasse, die alle HTTP-Requests gespeichert hält? Wäre eigentlich Praktisch.

  1. Am Ende noch ein wenig Codekritik zu den Namen der Methoden: Wir haben "isMobile" und "GetDevice" - einmal klein und einmal groß.

Soll ich einfach nur Konsequent bei einer Schreibweise bleiben, oder gibt es eine Empfohlene?

Ich habe mir nochmal die Menuklasse angesehen, wenn jetzt kein Iterator-Zeugs kommt, ist das, was du gepostet hast, ja Super einfach. Schwer wird es nur mit den ganzen zusatzaufgaben, die du hinten dranhängst.
Können wir nicht Schritt für Schritt arbeiten?

Ich würde die Klasse mit meinem Aktuellen Kenntnisstand so verwenden:

<?php  
  
# Muss diese Klasse in eine Externe Datei, oder gehört diese Klasse direkt zur Klasse Navi?  
class Navi_Decorator  
{  
  # Liste erzeugen  
  public function buildList($id, $list)  
  {  
    return sprintf('<ul id="%s">%s</ul>', $id, $list);  
  }  
  # Links erzeugen  
  public function getHtmlLink($link, $label)  
  {  
    return sprintf('<li><a href="%s">%s</a></li>', $link, htmlspecialchars($label));  
  }  
  # Link zur Aktiven Seite "entlinken"  
  public function getHtmlActiveSite($label)  
  {  
    return sprintf('<li>%s</li>', htmlspecialchars($label));  
  }  
}  
  
class Navi  
{  
  private $_links;  
  private $_decorator;  
  private $_activelink;  
  
  public function __construct(array $links, Navi_Decorator $decorator, $active)  
  {  
    $this->_links = $links;  
    $this->_decorator = $decorator;  
    $this->_activelink = $active;  
  }  
  
  public function getHtmlMenu($id)  
  {  
    $menustring = '';  
    foreach ($this->_links as $link => $label)  
    {  
      if ($this->_activelink == $link)  
        $menustring .= $this->_decorator->getHtmlActiveSite($label);  
      else  
        $menustring .= $this->_decorator->getHtmlLink($link, $label);  
    }  
    return $this->_decorator->buildList($id, $menustring);  
  }  
}  
  
# Die erzeugung der Links kann ja erstmal warten, bis ich die vorherigen Prozesse verstanden habe  
$links = array('/'          => 'Home'  
              ,'/impressum' => 'Impressum'  
              ,'/kontakt'   => 'Kontakt');  
$decorator = new Navi_Decorator();  
$navi = new Navi($links, $decorator, $_SERVER['REQUEST_URI']); # REQUEST_URI zum entlinken der Aktiven Seite  
echo $navi->getHtmlMenu('mymenu'); # Parameter: <ul id="mymenu">LIST</ul>

mfg

--
Die neuen 4 Jahreszeiten: Frühling, ARSCHLOCH, Herbst und Winter!
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