Ich erstelle eine Bibliothek von Anzeigeobjekten für unsere Anwendung. Sie stellen den HTML-Code vieler gängiger Objekte (Benutzer, Konversationen, Nachrichten usw.) in verschiedenen Ansichten dar. Mit Views meine ich, dass das Objekt verschiedene 'Zoom Levels' von sich selbst mit unterschiedlichem Markup zurückspucken kann.Zend Framework - Viewscripts/Partials vs View Helpers verwenden
Einige Anzeigeobjekte enthalten andere Anzeigeobjekte, um z. ein Benutzerlistenobjekt rendert Benutzerobjekte in einer bestimmten Ansicht (diese Ansicht spuckt sie in Listeneinträge zurück, damit sie in die Liste passen)
Ich versuche, diese in die richtige Art und Weise zu bringen, Dinge in ZF zu tun, aber Ich kann nicht entscheiden, ob das alles View-Helfer sein sollen, oder ob es sich um View-Scripts/Partials handelt.
Sie nur Skripts anzeigen und Rendern mit -> render() scheint ein wenig schmutzig, weil alle Informationen oder Parameter, die ich an sie übergeben möchte, dem Ansichtsobjekt zugewiesen werden muss.
Partials scheinen etwas korrekter zu sein, außer dass sie nicht sicher sind, ob es in diesen Fällen eine Anzeigelogik macht (wenn 'showNotificationStatus' als Parameter übergeben wird, wird diese Spanne gerendert). Oder wenn es koscher ist, dass Partials andere Teiltöne wiedergeben (eine Benutzerliste, die das Benutzerobjekt rendert).
View Helfer scheinen möglicherweise der richtige Weg, es zu tun, aber ich weiß nicht, ob das Überfrachtung View Helfer ist. Jedes Objekt könnte ein View-Helfer sein und einen Objektansicht-Parameter akzeptieren, so dass er weiß, in welcher Zoom-Ebene/Container er sich rendern soll, oder jede Objektansicht könnte sogar sein eigener Helfer sein (es gibt also keine große Schalteranweisung in einem Objekt). Eine nette Sache über die Ansichten ist, dass Sie Parameter übergeben können und immer noch Zugriff auf den Ansichtskontext haben, wenn Sie etwas von dieser Ebene benötigen.
Die meisten von diesen akzeptieren Modelle, wobei einige zusätzliche Parameter benötigen, um zu wissen, was zu tun ist (zB showNotificationStatus von oben). Was ist das richtige Werkzeug dafür?
Bryan Ich denke, das ist wirklich eine gute Information. Gibt es irgendeine Chance, ein bisschen zu erarbeiten? Nehmen wir an, Sie haben ein Business-Objekt, das auf einer Reihe verschiedener Zoomstufen (von Details) dargestellt werden kann. Haben Sie einen Helfer, der verschiedene Teiltöne basierend auf einem übergebenen Parameter rendert? Viele Helfer mit entsprechenden Teiltönen? Im Allgemeinen betrachtest du allgemein eine 1 zu 1 Beziehung? Und ist es cool für Partials, andere View-Helfer zu nutzen? (Stellen Sie sich eine Konversation vor, die eine Liste von Benutzern enthält. Sie müssen die Benutzer innerhalb der Konversation partiell rendern.) –
Ich habe zu meiner Antwort oben ein Beispiel hinzugefügt. In meinem Beispiel verwende ich Helfer, um Teiltöne zu steuern, aber ich sehe nicht, warum du es nicht anders herum tun könntest. Ich bevorzuge es, meinen HTML-Code so frei von PHP-Logik wie möglich zu halten. –
Hervorragend. Danke einem Haufen Bryan! –