Frage

Im Moment bin ich versucht, meine eigene kleine MVC (nur für die Praxis und für das Verständnis der MVC-Muster Details) zu erstellen. Ich möchte, Teile der Seiten (Dropdown-Listen, Listen etc.) zwischenzuspeichern und ich weiß nicht, was der beste Weg ist, es zu organisieren.

Lassen Sie uns vorstellen, dass ich mit Posts Methode getPostDetailsShortly ($ post_id) haben. Diese Methode könnte wie folgt aussehen ...

public function getPostDetailsShortly($post_id) {

  if (!$post_id) return false;
  $content = $this->memcache->get("post" . $post_id); //Trying to get post details HTML from memcache

  if (!$content) { //Not fount in memcache

    $model = new PostsModel();
    $data = $model->getPostDetailsShortly($post_id);

    $this->view->assign('data', $data);

    ob_start();
    $this->view->render();
    $content = ob_get_contents(); //Getting view output into variable
    ob_end_clean();

    $this->memcache->set('post' . $post_id, $content, 1000); //Writing variable to memcache

  }

  return $content;

}

Nun soll ich diese Controller-Methode von Ansichten zur Verfügung stellen. Weil ich es innerhalb von anderen Seiten verwenden, zum Beispiel für den Bau verwandten Beiträge Liste.

Was ist die beste Praxis, es zu tun? Ich bin falsch und es gibt einige bessere Methoden vielleicht Caching Teile der Seiten?

zu organisieren

PS:. Sorry für mein Englisch, aber ich hoffe, es ist klar,

Danke!

War es hilfreich?

Lösung

Die Idee hinter MVC für diejenigen, die diese, die nicht wissen werden, lesen können, ist das Modell zu trennen, View und Controller-Architektur der Website. Ich bin sehr vertraut mit CakePHP MVC-Framework. So wird diese Antwort auf meine Kenntnisse von MVC basieren, wie es zu CakePHP betrifft.

Da die Informationen, die Sie Bedarf bieten die Ansicht zur Verfügung gestellt werden, würde ich vorschlagen, es als HTML-Helfer bauen. Ein Helfer ist so konzipiert, wieder verwendbaren Code zur Ansicht zur Verfügung zu stellen. Der Controller ist die Implementierung der Logik hinter dem Code (was mit den Daten aus den Formularen auf der Ansicht kommen zu tun, welche Ansichten, rufen Sie das Modell für Daten zu fragen, etc.).

Mit Blick auf die Frage, die Sie über das Caching diese Elemente sprechen. Ich denke, es ist eine gute Sache, wenn Sie immer große Mengen an Traffic vorwegnehmen, aber nicht wirklich notwendig, sonst. Having said that, es scheint die Frage mehr über die Architektur ist als das Caching. Die aktuelle Architektur scheint Klang, aber ich würde die Funktionalität in eine „Komponente“ bewegen, die von allen Controllern zugänglich ist. Dies ermöglicht Ihnen, es von jedem Controller zu nennen, wo Sie es brauchen, ohne jedes Mal einen bestimmten Controller anrufen zu müssen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top