turk porno porno escort rokettube
Ergebnis 1 bis 7 von 7

Thema: Initialisierung von Objekt in mehreren actions eines Controllers

  1. #1
    Benutzer
    Registriert seit
    07.03.2013
    Beiträge
    62
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Standard Initialisierung von Objekt in mehreren actions eines Controllers

    Hi,

    ich bin momentan dabei ein Firmenverzeichnis aufzusetzen. Dabei hätte ich gerne, dass die Firmendetailseite in mehrere Tabs untergliedert ist, welche jeweils über eine eigene Url verfügen. Somit ergibt sich z. B. folgender Aufbau

    www.url.de/firmenverzeichnis => CompanyController => indexAction
    www.url.de/firmenverzeichnis/firma-1 => CompanyController => viewAction
    www.url.de/firmenverzeichnis/firma-1/bewertungen => CompanyController => ratingsAction

    Hier mal der Aufbau der beiden actions, welche eine Detailseite der Firma repräsentieren

    PHP-Code:
    public function viewAction() {
        
    $slug $this->params()->fromRoute('slug');
        
    $company $this->getCompanyService()->getOneBySlug($slug);

        if (!
    $company) {
            
    $this->getResponse()->setStatusCode(404);
        }
            
        return new 
    ViewModel(array(
            
    'company' => $company
        
    ));
    }

    public function 
    ratingsAction() {
        
    $slug $this->params()->fromRoute('slug');
        
    $company $this->getCompanyService()->getOneBySlug($slug);

        if (!
    $company) {
            
    $this->getResponse()->setStatusCode(404);
        }
            
        return new 
    ViewModel(array(
            
    'company' => $company,
            
    'ratings' => $company->getRatings()
        ));

    Hier fällt auf, dass der erste Teil der actions bis zum return des ViewModels identisch sind, was bei einer wachsenden Anzahl an Unterseiten zu ernorm viel duplicate code führt.

    Sollte ich diesen Teil in ein ControllerPlugin auslagern, oder was wäre hier der richtige Ansatz?

    Danke und Gruß
    Geändert von domeb (14.01.2014 um 17:51 Uhr)

  2. #2
    Super-Moderator Avatar von Kaiuwe
    Registriert seit
    30.12.2006
    Beiträge
    5.520
    Thanks
    4
    Thanked 356 Times in 287 Posts

    Standard

    Zitat Zitat von domeb Beitrag anzeigen
    Sollte ich diesen Teil in ein ControllerPlugin auslagern, oder was wäre hier der richtige Ansatz?
    Warum nicht einfach den Konstruktor nutzen?
    Zum Zend Framework stehen jedem folgende Quellen zum Nachschlagen zur Verfügung:

  3. #3
    Benutzer
    Registriert seit
    07.03.2013
    Beiträge
    62
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Standard

    Constructor fällt flach, da es auch actions gibt, welche keine detailseite sind. Z. B. IndexAction, welche die Liste der Firmen beinhaltet.

  4. #4
    Super-Moderator Avatar von Kaiuwe
    Registriert seit
    30.12.2006
    Beiträge
    5.520
    Thanks
    4
    Thanked 356 Times in 287 Posts

    Standard

    Zitat Zitat von domeb Beitrag anzeigen
    …da es auch actions gibt, welche keine detailseite sind…
    PHP-Code:
    if (null !== $slug $this->params()->fromRoute('slug')) {
        
    $this->company $this->getCompanyService()->getOneBySlug($slug);

        if (!
    $this->company) {
        


    Zum Zend Framework stehen jedem folgende Quellen zum Nachschlagen zur Verfügung:

  5. #5
    Benutzer
    Registriert seit
    07.03.2013
    Beiträge
    62
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Standard

    ich habe es nun so gemacht, dass ich eine methode "initCompany" habe, welche ich dann in den "view actions" aufrufe um die Firma zu initialisieren. Nun aber eine andere Frage:

    Wie realisiere ich am besten ein Tabsystem? Ist die Navigation hier der richtige Ansatz? Ich frage mich dann nur wie ich die dynamischen Links dort hinbekomm. Anderer weg wäre eventuell der Placeholder. Aber ich komm irgendwie nicht wirklich dahinter...

  6. #6
    Erfahrener Benutzer Avatar von Ralf
    Registriert seit
    14.12.2006
    Beiträge
    450
    Thanks
    0
    Thanked 47 Times in 37 Posts

    Standard

    Ich würde durchaus auch den Weg eines Plugins gehen, das dann natürlich variabel gestaltet werden muss, damit es in anderen Controllern verwendet werden kann. Und deine Fetch/Get Methoden für den Service müssten natürlich einen einheitlichen Namen haben...

    Gruß,

    Ralf

  7. #7
    Benutzer
    Registriert seit
    07.03.2013
    Beiträge
    62
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Standard

    Hi Ralf,

    wie genau meinst du das mit variable Gestaltung? Dass die Entity, welche zurückgegeben wird variabel ist?

    Danke und Gruß
    Geändert von domeb (27.01.2014 um 12:20 Uhr)

Ähnliche Themen

  1. Alle Actions eines Controllers als Array erhalten
    Von Frau Bauer im Forum Einsteigerfragen
    Antworten: 16
    Letzter Beitrag: 14.01.2012, 05:36
  2. Antworten: 1
    Letzter Beitrag: 29.12.2011, 02:37
  3. Action eines anderen Controllers afrufen?
    Von smung0r im Forum Einsteigerfragen
    Antworten: 3
    Letzter Beitrag: 08.12.2009, 18:21
  4. Instanz eines Controllers innerhalb eines Controllers?
    Von 11&2 im Forum Einsteigerfragen
    Antworten: 5
    Letzter Beitrag: 11.03.2009, 17:50
  5. Initialisierung von Date mittels MySQL Datetime
    Von UxPx im Forum Lokalisierung & Internationalisierung
    Antworten: 21
    Letzter Beitrag: 05.09.2008, 13:55

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •