php.de

Zurück   php.de > Webentwicklung > Software-Design

Software-Design Diskussionen auf Profi-Niveau: PHP Lösungen auf konzeptioneller Ebene

Antwort
 
LinkBack Themen-Optionen Bewertung: Bewertung: 1 Stimmen, 5,00 durchschnittlich.
Alt 29.04.2011, 10:23  
Erfahrener Benutzer
 
Registriert seit: 30.07.2008
Beiträge: 1.169
PHP-Kenntnisse:
Fortgeschritten
xm22 sorgt für eine eindrucksvolle Atmosphärexm22 sorgt für eine eindrucksvolle Atmosphärexm22 sorgt für eine eindrucksvolle Atmosphäre
Standard Wo Zuweisung von Metatags in MVC

Hi,

ich weiß nicht, ob das unter Software-Design fällt, aber ich denke, im weiten Sinne schon.

Und zwar überlege ich jetzt schon einige Zeit, wie man mit HTML-Metadaten in einer MVC-Applikation umgeht. Für mich gibt es drei Wege, die allerdings alle nicht besonders sauber erscheinen:

1. Die Metatags werden im View generiert und entsprechend ausgegeben (Z. B. in einem Template).
2. Die Metatags werden per Controller/Model an das View übergeben.
3. Die Metatags werden in einer Registry o. ä. gesammelt und dann letztendlich im View oder Template oder wo auch immer ausgegeben.

Da die aktuelle Applikation - in diesem Fall basierend auf meinem Framework - das HMVC-Pattern benutzt, tendiere ich zu Punkt 3, da die verschiedenen Bestandteile alle die Möglichkeit benutzen können sollen, quasi Ihren "Senf dazu geben zu können". Was haltet ihr davon?
xm22 ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 29.04.2011, 10:41  
Erfahrener Benutzer
 
Benutzerbild von lstegelitz
 
Registriert seit: 07.09.2009
Beiträge: 4.005
PHP-Kenntnisse:
Fortgeschritten
lstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nett
Standard

Zitat:
Zitat von xm22 Beitrag anzeigen
3. Die Metatags werden in einer Registry o. ä. gesammelt und dann letztendlich im View oder Template oder wo auch immer ausgegeben.
Macht so am meisten Sinn. Ich machs jedenfall so ähnlich, und auch dynamische JS Einbindung funktioniert vom Prinzip her bei mir so (eine Subkomponente kann ein JS registrieren, wenn es das benötigt - die zentrale Steuerung verhindert zudem, daß das JS x-mal eingebunden wird, wenn die Komponente mehrfach auf einer Seite verwendet wird)
__________________
Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.
lstegelitz ist offline   Mit Zitat antworten
Alt 29.04.2011, 11:02  
Erfahrener Benutzer
 
Registriert seit: 30.07.2008
Beiträge: 1.169
PHP-Kenntnisse:
Fortgeschritten
xm22 sorgt für eine eindrucksvolle Atmosphärexm22 sorgt für eine eindrucksvolle Atmosphärexm22 sorgt für eine eindrucksvolle Atmosphäre
Standard

Stimmt - Habe ich vergessen zu sagen: Diese "Registry" bezieht sich auf alles, was nachher im Template angezeigt/eingebunden wird (Metatags, Title, css, js, ...)
xm22 ist offline   Mit Zitat antworten
Alt 29.04.2011, 11:42  
da schreibt der ElePHPant
 
Benutzerbild von Flor1an
 
Registriert seit: 18.06.2008
Beiträge: 8.903
PHP-Kenntnisse:
Fortgeschritten
Flor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer Anblick
Standard

Hey, ich kann dir ja mal erzählen wie das bei mir läuft. Ich nutz das Zend Framework und was ich nutze sind:
- title
- css/js files
- inline javascript
- breadcrumb
- opengraph werte
- metatags
Im Zend gibts im View so genannte View Helper, das sind Objekte mit einer Funktion die aufgerufen werden wenn sie im View genutzt werden, da das Objekt immer nur einmal Instanziert wird kann ich über den ganzen Ablauf hinweg mein Zeug da rein speichern. Dient also im Grunde wie eine Registry, aufrufen tu ich das im View weil das für mich alles Dinge sind die zur Ausgabe gehören. Funktioniert für mich sehr gut weil ich wirklich pro einzelner Seite/View einstellen kann was dann später wirklich alles angezeigt werden soll.
Flor1an ist offline   Mit Zitat antworten
Alt 29.04.2011, 13:23  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.994
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Metatags und Titel sind genauso Inhalte wie der eigentliche Content. Machs da, wo Du auch den Content verwaltest. Wenn Du gemeinsame MT für verschiedenen Content verwendest, musst Du eben dort eine Abstraktionsebene einführen.
Language und base href z.B. würde ich eher auf Controllerebene ansiedeln. Individuelle Stylesheets und Javascripte sind mit dem Content eng verknüpft, gehören für mich aber auf die Ebene der Modulverwaltung - denn daran kann man die optimal anknüpfen.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Alt 29.04.2011, 14:37  
Erfahrener Benutzer
 
Registriert seit: 30.07.2008
Beiträge: 1.169
PHP-Kenntnisse:
Fortgeschritten
xm22 sorgt für eine eindrucksvolle Atmosphärexm22 sorgt für eine eindrucksvolle Atmosphärexm22 sorgt für eine eindrucksvolle Atmosphäre
Standard

Dann ist der Weg, den ich momentan gehe anscheinend ganz akzeptabel. Danke für eure Statements!
xm22 ist offline   Mit Zitat antworten
Alt 29.04.2011, 18:41  
Moderator und Wett-König
 
Benutzerbild von dr.e.
 
Registriert seit: 21.05.2008
Beiträge: 3.657
PHP-Kenntnisse:
Fortgeschritten
dr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblick
dr.e. eine Nachricht über Skype™ schicken
Standard

Da es sich bei HTML-Meta-Daten um - mehr oder weniger - dynamische Daten handelt sehe ich diese definitiv im Controller.

Die Registry wird allzuoft als Daten- oder Instanzen-Store genutzt, was IMHO insbesondere bei ersterem nicht im Sinne des Erfinders ist.
__________________
Viele Grüße,
Dr.E.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1. Think about software design before you start to write code!
2. Discuss and review it together with experts!
3. Choose good tools (-> Adventure PHP Framework (APF))!
4. Write clean and reusable software only!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dr.e. ist offline   Mit Zitat antworten
Alt 29.04.2011, 19:40  
da schreibt der ElePHPant
 
Benutzerbild von Flor1an
 
Registriert seit: 18.06.2008
Beiträge: 8.903
PHP-Kenntnisse:
Fortgeschritten
Flor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer Anblick
Standard

Aber gehören solche Dinge wie Titel, Meta-Tags, das Laden von JS/CSS Files und ähnliches nicht komplett zur Ausgabe? Angenommen ich möchte meinen Controller behalten und nen neuen View drüber setzen, z.b. nicht HTML sondern XML oder JSON oder sonstiges, dann hätte ich auch bei allen anderen Arten von Views die Meta Tags oder die Teile die JS/CSS laden. Die gehören aber bei den Views gar nicht dazu. Von daher finde ich es eigentlich geschickter solche Sachen im View selbst zu erledigen damit der View austauschbar bleibt.
Flor1an ist offline   Mit Zitat antworten
Alt 29.04.2011, 19:57  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.994
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Es geht ja um die Meta-Daten nicht die Meta-Tags selbst. Und ich kann mir schon vorstellen, dass die in anderen Kontexten woanders auch Anwendung finden könnten. Ist ja nur Plain text.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Alt 30.04.2011, 09:04  
Erfahrener Benutzer
 
Registriert seit: 28.09.2008
Beiträge: 1.168
PHP-Kenntnisse:
Fortgeschritten
Koala befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Aber gehören solche Dinge wie Titel, Meta-Tags, das Laden von JS/CSS Files und ähnliches nicht komplett zur Ausgabe? Angenommen ich möchte meinen Controller behalten und nen neuen View drüber setzen, z.b. nicht HTML sondern XML oder JSON oder sonstiges, dann hätte ich auch bei allen anderen Arten von Views die Meta Tags oder die Teile die JS/CSS laden. Die gehören aber bei den Views gar nicht dazu. Von daher finde ich es eigentlich geschickter solche Sachen im View selbst zu erledigen damit der View austauschbar bleibt.
Der Controller entscheidet welche meta-Daten benötigt werden
und welche View geladen wird.

Wenn XML ausgegeben werden soll, dann werden die meta-Daten eben erst gar nicht geladen.

Die View bleibt immer austauschbar, da die View nur meta-Tags ausgibt
wenn meta-Daten vorliegen. (Design-Logik)
__________________
Eine if-else-Abfrage nimmt, ordentlich geschrieben eine Menge Platz weg. Platzsparend geht es mit einem ternären Operator.
Koala ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Erledigt] Wert Zuweisung Option Value Bravestar2010 PHP Einsteiger 12 03.02.2011 15:22
Zuweisung eines Objects an ein public static-Attribut sonicpix PHP-Fortgeschrittene 15 18.11.2010 13:14
[Erledigt] Methoden zuweisung Fridoo PHP-Fortgeschrittene 4 12.11.2010 13:37
[Erledigt] Arrayfeldwert ist trotz Zuweisung nicht vorhanden Nightwave PHP Tipps 2010 4 17.08.2010 08:32
[Erledigt] Problem bei Zuweisung einer Variable mit XML Element Colophoniaz PHP Tipps 2010 6 31.05.2010 00:45
[Erledigt] Zuweisung eines Beitrages für einen Link Coke121 PHP Tipps 2010 14 19.03.2010 16:18
PHP Formularüberprüfung und CSS Klassen Zuweisung bruzzler PHP Tipps 2009 2 06.11.2009 09:40
Variable Zuweisung aha_01 PHP Tipps 2008 11 06.09.2007 16:00
metatags für jede Seite anders? frankm123 PHP Tipps 2006 33 29.05.2006 03:18
Metatags per php einbinden? imported_FlasH PHP Tipps 2005-2 3 30.10.2005 15:33
Gruppenbefugniss zuweisung klaut Admin status PHP Tipps 2005-2 16 22.06.2005 01:44
variablen zuweisung beim radio input PHP Tipps 2005 3 03.03.2005 00:35
Array - Zuweisung an $_SESSION Stümper PHP Tipps 2005 8 11.01.2005 15:15
Zuweisung in array tikal PHP Tipps 2004 5 23.09.2004 14:10
Zuweisung oder Vergleich? Stümper PHP Tipps 2004 5 30.07.2004 14:48

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
mvc metatags, php mvc meta title, zend dynamic meta description, meta tags controller, php template metatags, mvc in javascript zuweisen, metatags zuweisen für webseite mvc 3, mvc tool über viewhelper, php.de mvc, mvc view zuweisung, zend meta description in controller setzen, mvc php viewhelper controller metatags, mvc metatags php, model mvc zuweisung, mvc store möglichkeiten javascript, mvc meta tags

Alle Zeitangaben in WEZ +2. Es ist jetzt 01:34 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum