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 Thema bewerten
Alt 22.07.2009, 21:40  
Benutzer
 
Registriert seit: 27.03.2008
Beiträge: 99
PHP-Kenntnisse:
Fortgeschritten
fat32 befindet sich auf einem aufstrebenden Ast
Standard Mehrere Controller auf einer Seite

Hi,

mir stellt sich gerade die Frage, wie man es am besten handhabt, wenn es auf einer Seite mehrere Controller geben soll.

Ein kleines Beispiel.

Es gibt die Seiten "News" und "Gästebuch", sowie eine "Startseite".

Auf der Startseite soll oben ein Infotext stehen (kein Problem), dann die News erscheinen und darunter noch das Gästebuch. Wäre soweit ja auch kein Problem.

Zusätzlich soll man aber die News und das Gästebuch einzeln abrufen können.

Ich würde also 3 Controller implementieren: News, Gästebuch, Startseite.
Auf der Startseite hätte ich jetzt das Problem, wie ich dem View sagen soll, was ausgegeben wird. Denn das ist ja schon in den Controllern News und Gästebuch fest programmiert.

In etwa so
(In jedem Controller)
PHP-Code:
$this->view->addContent("content"$meine_daten"templatedatei"); 
Wie macht man sowas möglichst dynamisch?

Schön wäre es auch, wenn meine Controller alle noch mehrere Aktionen ausführen könnten und dann am Ende alles zu einer Art Komposition zusammengeführt wird, ohne dass ich viel Code ändern muss.

Ich weiß nicht, ob fertige Frameworks das schon können, aber es ist mir ehrlichgesagt auch nicht so wichtig Ich möchte sowas ähnliches selbst programmieren.

Ich freue mich schon auf eure Antworten!

MfG
Simon
fat32 ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 22.07.2009, 22:04  
Erfahrener Benutzer
 
Registriert seit: 16.07.2005
Beiträge: 1.007
PHP-Kenntnisse:
Fortgeschritten
brian johnson befindet sich auf einem aufstrebenden Ast
Standard

HMVC nennt sich das, hatten wir gerade: http://www.php.de/software-design/56...lling-mvc.html (erweitertes Controlling (MVC))
Zitat:
Ich weiß nicht, ob fertige Frameworks das schon können, aber es ist mir ehrlichgesagt auch nicht so wichtig
standardantwort: 42...ähh Adventure PHP Framework

Zitat:
mir stellt sich gerade die Frage, wie man es am besten handhabt, wenn es auf einer Seite mehrere Controller geben soll.
was wirklcich software-design mäßiges kann ich nicht anbieten, auf Dr.e warten.

ich habe das bisher immer über eine simple plugin struktur gemacht:

dazu definierte ich mir ein (inneres) design in der art:

Zitat:
<div>{plugins_a}</div>
<div style="float:left">
{content}
</div>
<div>{plugins_b}</div>
die plugins habe ich dann simpel über page_id (+ wo es angezeigt werden soll) aus der datenbank abgerufen und eingebunden. also>

Code:
id - page_id - where - plugin_controller
1 - 1  - plugins_a - plugin_news
1 - 1 - plugins_b - plugin_guestbook
alles schön primitiv, so wie ich das mag
__________________
PHP4?!?>>>Aktuelle PHP Version: 5.2.11 || 5.3.0
Suse 11.2 *vorfreude*

Geändert von brian johnson (22.07.2009 um 22:15 Uhr).
brian johnson ist offline   Mit Zitat antworten
Alt 22.07.2009, 22:07  
Benutzer
 
Registriert seit: 27.03.2008
Beiträge: 99
PHP-Kenntnisse:
Fortgeschritten
fat32 befindet sich auf einem aufstrebenden Ast
Standard

Danke für die Antwort!

Mit Plugins hatte ich das bisher auch... Gefällt mir aber nicht soo gut
fat32 ist offline   Mit Zitat antworten
Alt 22.07.2009, 22:25  
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

Ob man es jetzt Plugins oder sonstwie nennt: Ich finde das die einzig sinnvolle Lösung.
Mal jetzt unabhängig von der konkreten Implementierung:

- Schaffe selbstständige Module. Diese können die gesamte Bildschirmausgabe ihres Bereichs leisten (abgesehen vom HTML Dokumentgerüst) und besitzen einen selbständigen Controller, der aus gegebenen Requestdaten alle Aktionen des Moduls anstößt. Module haben Zugriff auf ausgewählte Domainobjekte.

- Schaffe Seitenstrukturen, die aus Modulen zusammengebaut. Im spätestens Fall werden die Module bei Ihrem Aufruf im Template erst erzeugt. Manchmal wird das früher notwendi sein, z.B. wenn die Module noch den aufrufenden Kontext beeinflussen können sollen.

- Schaffe eine zentrale Instanz für die Pageadressierung (Controller) und die Verwaltung aller Requesteingaben (z.B. auch Extraktion aus der URL) und Applikationskomponenten.

Das wäre mein Ansatz für Dich.
Ein Knackpunkt ist noch die Adressierung von Controlleraktionen, wenn man mit 'hübschen' URLs arbeiten will. Vgl. http://www.php.de/software-design/56...lling-mvc.html (erweitertes Controlling (MVC))
__________________
--
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 gerade online   Mit Zitat antworten
Alt 23.07.2009, 23:06  
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

Zitat:
was wirklcich software-design mäßiges kann ich nicht anbieten, auf Dr.e warten.
Ich kann brian und nikosch nur wiederholen: der verlinkte Thread beinhaltet bereits alle Informationen. Wirklich entkoppelte Software-Module lassen sich mit den Plugin-Konzepten nicht lösen, da das URL-Layout nicht generisch genug 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 25.07.2009, 18:25  
Erfahrener Benutzer
 
Registriert seit: 16.07.2005
Beiträge: 1.007
PHP-Kenntnisse:
Fortgeschritten
brian johnson befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von dr.e. Beitrag anzeigen
Ich kann brian und nikosch nur wiederholen: der verlinkte Thread beinhaltet bereits alle Informationen. Wirklich entkoppelte Software-Module lassen sich mit den Plugin-Konzepten nicht lösen, da das URL-Layout nicht generisch genug ist.
dr.e => Deutsch
generisch => allgemein

um da aber mal weiterzuspannen>
ich habe die Plugin struktur primär nie per URL sondern hauptsächlich datenbankbasiert aufgesetzt. also habe ich am ende eine Page_ID der ich plugins über die DB zugeordnet habe, dadurch ist dann kein Url basierte lösung nötig. aber was genau ist der vorteil ein URL basierten lösung (oder der nachteil meiner lösung)? im endefekt musst du doch auch irgendwo eine zuordnung haben, die dann die urls erstellt, oder sehe ich das falsch?
__________________
PHP4?!?>>>Aktuelle PHP Version: 5.2.11 || 5.3.0
Suse 11.2 *vorfreude*

Geändert von brian johnson (25.07.2009 um 19:37 Uhr).
brian johnson ist offline   Mit Zitat antworten
Alt 27.07.2009, 16:55  
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

Naja, zumindest die Aktionen der Controller muss man irgendwie über die URL abbilden. Manche Module haben vielleicht noch einfache Aktionen wie vor/zurückblättern, aber für eine echte generische Lösung funktionieren statische Lösungen irgendwann nicht mehr.
Ich persönlich finde normale, parameterisierte Urls allerdings nicht weiter schlimm. Nichtsdestotrotz muss man dabei ja gezielt die Controller ansprechen können (z.b. wenn es zwei Module mit Blätterfunktion gibt), da zu URL Zeiten ja das eigentlich Zielscript und die beteiligten Module noch nicht bekannt/vom Controller aufgelöst sind.
__________________
--
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 gerade online   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
CURL in Seite einloggen und einen Teil parsen Matt PHP Tipps 2008 8 03.09.2009 22:30
Krieg kein Objekt zurück auf includeter Seite NONNNNN PHP Tipps 2008 5 28.03.2008 19:25
Eintrag in DB und Wechsel zu anderer Seite Darson PHP Tipps 2008 25 14.01.2008 16:46
Seite nicht mehr gültig Igäl PHP Tipps 2006 3 25.05.2006 16:08
[Erledigt] Wetten automatisch von anderer Seite beziehen PHP Tipps 2006 11 03.03.2006 09:09
Formular - Daten für nächste Seite behalten NetLook PHP Tipps 2007 7 18.11.2005 13:21
Frame schließen und Mehrere Controller auf einer Seite workaholic HTML, Usability und Barrierefreiheit 2 06.09.2005 13:36
Mit post an weitere Seite oder 2 Seiten übergeben? PHP Tipps 2005 1 02.02.2005 12:16
Neue Seite an einer bestimmten Stelle aufrufen PHP Tipps 2005 3 13.01.2005 10:09
blätterfunktion-limit-letzte seite PHP Tipps 2004-2 2 20.12.2004 23:56
Eine 2te Seite auto matisch in neuem Fenster laden PHP Tipps 2004 4 25.08.2004 14:10
[Erledigt] Tabelle auf einer Seite auslesen und in meiner Seite wiederg PHP Tipps 2004 2 14.07.2004 08:46
"NEWS-SCRIPT" in eine Seite einbinden: Aber wie ? PHP Tipps 2004 2 03.07.2004 16:33

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php mehrere controller, php mehrere controller auf einer seite, mcv tutorial, php mehrere controller ausführen, php: generisches url layout, php was muss ein controller können, eine seite die aus mehreren modulen zusammengebaut wird, mehrere controller

Alle Zeitangaben in WEZ +2. Es ist jetzt 00: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