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 31.08.2010, 17:03  
Erfahrener Benutzer
 
Registriert seit: 30.07.2008
Beiträge: 1.129
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

Zu 1.: Das sagte ich ja
Zu 2.: Da der Aufruf eines hmvc-Knotens generisch erfolgt (Funktionsaufruf mit entsprechender uri), gibt es da in meinen Augen kein Problem. Auch beim APF müssen die Taglibs doch einem Muster folgen, oder? Das wäre ja dann ebenfalls eine Abhängigkeit.
xm22 ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 31.08.2010, 21:51  
Moderator und Wett-König
 
Benutzerbild von dr.e.
 
Registriert seit: 21.05.2008
Beiträge: 3.633
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

@xm22:
1) Nein, du sagtest das Gegenteil. Du sprachst davon, dass es von Nachteil ist, HMVC im APF nur auf GUI-Ebene einsetzen zu können und in Kohana sei das mit dem Ansatz über den Controller flexibler. Das ist nicht korrekt, denn im MVC-Jargon ist der Controller ebenfalls in der Präsentations-Ebene angesiedelt. Damit ist der Ansatz hinsichtlich Präsentations-Ebene hin oder her exakt gleich zu bewerten.
2)
Zitat:
Da der Aufruf eines hmvc-Knotens generisch erfolgt (Funktionsaufruf mit entsprechender uri), gibt es da in meinen Augen kein Problem. Auch beim APF müssen die Taglibs doch einem Muster folgen, oder? Das wäre ja dann ebenfalls eine Abhängigkeit.
HMVC-Knoten mit einer fixen URI zu konstruieren geht IMHO am Konzept von HMVC vorbei und erzeugt trotzdem explizite Code-Abhängigkeiten. Möchtest du einen Knoten alleine Testen (es muss ja nicht mal ein Unit-Test sein), dann wirst du auf die Nase fliegen. Ob die Taglibs oder der Aufruf einem Muster folgt oder nicht, spielt dabei keine Rolle. Denn: Basis-Abhängigkeiten zu einem Page-Controller oder sonst einem Steuer-Element wirst du immer haben. Das ist wie die explizite, uneingeschränkte und unwiederrufliche Abhängigkeit von dir zu Sauerstoff.
Der Vorteil des Taglib-Konzeptes ist, dass die Abhängigkeiten im Baum von aussen eingeimpft werden (inversion of control) und nicht explizit in der Komponente vorhanden sind. Das erhöht die Wiederverwendbarkeit und bietet die als Entwickler die Möglichkeit, auf den Aufbau und die Transformation des Baumes Einfluss zu nehmen, ohne das Composite-Konstrukt des Baumes in irgendeiner Weise ungenerisch werden zu lassen. Du musst das nicht tun, aber du kannst es. Beispiel: je nach URL kannst du in einem Bereich der Seite ein komplett anderes Konstrukt aufbauen als noch einen Request zuvor, ohne, dass du im Controller explizite andere Module laden musst.
__________________
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 01.09.2010, 22:57  
Jens P.
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von dr.e. Beitrag anzeigen
@xm22:
1) Nein, du sagtest das Gegenteil. Du sprachst davon, dass es von Nachteil ist, HMVC im APF nur auf GUI-Ebene einsetzen zu können und in Kohana sei das mit dem Ansatz über den Controller flexibler. Das ist nicht korrekt, denn im MVC-Jargon ist der Controller ebenfalls in der Präsentations-Ebene angesiedelt. Damit ist der Ansatz hinsichtlich Präsentations-Ebene hin oder her exakt gleich zu bewerten.
2)

HMVC-Knoten mit einer fixen URI zu konstruieren geht IMHO am Konzept von HMVC vorbei und erzeugt trotzdem explizite Code-Abhängigkeiten. Möchtest du einen Knoten alleine Testen (es muss ja nicht mal ein Unit-Test sein), dann wirst du auf die Nase fliegen. Ob die Taglibs oder der Aufruf einem Muster folgt oder nicht, spielt dabei keine Rolle. Denn: Basis-Abhängigkeiten zu einem Page-Controller oder sonst einem Steuer-Element wirst du immer haben. Das ist wie die explizite, uneingeschränkte und unwiederrufliche Abhängigkeit von dir zu Sauerstoff.
Der Vorteil des Taglib-Konzeptes ist, dass die Abhängigkeiten im Baum von aussen eingeimpft werden (inversion of control) und nicht explizit in der Komponente vorhanden sind. Das erhöht die Wiederverwendbarkeit und bietet die als Entwickler die Möglichkeit, auf den Aufbau und die Transformation des Baumes Einfluss zu nehmen, ohne das Composite-Konstrukt des Baumes in irgendeiner Weise ungenerisch werden zu lassen. Du musst das nicht tun, aber du kannst es. Beispiel: je nach URL kannst du in einem Bereich der Seite ein komplett anderes Konstrukt aufbauen als noch einen Request zuvor, ohne, dass du im Controller explizite andere Module laden musst.
dr. e. gibt einfach die besten Beiträge die ich bisher hier glesen habe! Ich muss dr. e. zusätzlich Recht geben! Das was er sagt ist perfekt! Ich liebe das APF.

Ich kann dem Threadersteller nur empfehlen das APF zu nutzen und nicht wie viele anderen Programmierer versuchen ein eigenes zu schreiben! Das APF ist durchdacht!
  Mit Zitat antworten
Alt 01.09.2010, 23:08  
¯\_(ツ)_/¯
 
Benutzerbild von Flor1an
 
Registriert seit: 18.06.2008
Beiträge: 8.814
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

Ganz schön rutschig hier.
__________________
▇█▓▒░◕‿‿◕░▒▓█▇
Flor1an ist offline   Mit Zitat antworten
Alt 01.09.2010, 23:14  
Jens P.
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von Flor1an Beitrag anzeigen
Ganz schön rutschig hier.
Mag sein, das ich viel von dem APF schwärme. Jedoch habe ich ein Recht dazu, wenn dies eine super Lösung ist! Ich habe noch kein Framework gesehen, welches so leicht zu erlernen ist und so viel Bietet! Und ich habe schon einige miteinander verglichen!
  Mit Zitat antworten
Alt 02.09.2010, 08:02  
Erfahrener Benutzer
 
Registriert seit: 30.07.2008
Beiträge: 1.129
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

Zitat:
Ich habe noch kein Framework gesehen, welches so leicht zu erlernen ist und so viel Bietet! Und ich habe schon einige miteinander verglichen!
Dazu denke ich mir jetzt mal meinen Teil...
Zitat:
HMVC-Knoten mit einer fixen URI zu konstruieren geht IMHO am Konzept von HMVC vorbei und erzeugt trotzdem explizite Code-Abhängigkeiten. Möchtest du einen Knoten alleine Testen (es muss ja nicht mal ein Unit-Test sein), dann wirst du auf die Nase fliegen.
Es wird immer einfach eine Action als HMVC-Knoten eingebunden. Ob das nun per Taglib oder per URI-String geschieht, spielt keine Rolle. Jeder HMVC-Knoten in Kohana kann auch direkt angesprochen werden, also sehe ich da kein Problem.
xm22 ist offline   Mit Zitat antworten
Alt 02.09.2010, 08:21  
cortex
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von Jens P. Beitrag anzeigen
dr. e. gibt einfach die besten Beiträge die ich bisher hier glesen habe! Ich muss dr. e. zusätzlich Recht geben! Das was er sagt ist perfekt! Ich liebe das APF.

Ich kann dem Threadersteller nur empfehlen das APF zu nutzen [...] Das APF ist durchdacht!
das nennt man wohl besoffen vor glück...

cx
  Mit Zitat antworten
Alt 02.09.2010, 08:41  
Erfahrener Benutzer
 
Registriert seit: 26.11.2008
Beiträge: 264
dsentker befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von dr.e. Beitrag anzeigen
@dsentker:
Genau das meinte ich mit fehlender Abstraktion, Kapselung und Wiederverwendung! Das mag für den einfachen Anwendungsfall passen, du willst aber sicher nicht alle Abhängigkeiten eines Moduls in einem Controller auflösen oder dich in einem speziellen Controller darum kümmern müssen, welche Parallel-Controller existieren. Gerade bei komplexen GUI-Strukturen ist das wirklich problematisch.
Vielen Dank für die Kritik, aber ich verstehe ehrlich gesagt nicht was du meinst. Ich kann von jeder Controller-Action aus diesen Controller laden. Er kann sich auch selbst laden, wenn man ihn direkt über die Adresszeile startet wie www.beispiel.de/controllername/action/
__________________

Geändert von dsentker (02.09.2010 um 08:56 Uhr).
dsentker ist offline   Mit Zitat antworten
Alt 04.09.2010, 12:24  
Erfahrener Benutzer
 
Registriert seit: 30.07.2008
Beiträge: 1.129
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

Ich will das nicht noch mal aufwärmen, aber ich sitze ja derzeit an einer etwas größeren Applikation und brauchte nun eine Anzeige eines Warenkorbs in der linken Spalte, so wie man das aus vielen Online-Shops kennt. Das einzige, das ich dazu tun musste, war, einen hmvc-Knoten anzulegen, und so einzubinden:
PHP-Code:
...
 <?= ZN_App::instance()->node('Store.Basket.Box'?>
...
Da bei dieser Funktion lediglich ein String zurück gegeben wird, werden automatisch ACL-Bedingungen beachtet. Dies ist nur ein einfaches Bsp. aus meinem Framework, bei dem die hmvc-Aufrufe ähnlich dem Kohana-Framework sind.
xm22 ist offline   Mit Zitat antworten
Alt 04.09.2010, 13:01  
Moderator und Wett-König
 
Benutzerbild von dr.e.
 
Registriert seit: 21.05.2008
Beiträge: 3.633
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

Was versteckt sich hinter ZN_App::instance()?
__________________
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
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
Eine Frage zum guten Code-Layout SilentSight JavaScript, Ajax und mehr 3 14.07.2010 09:18
[Erledigt] Frage zu JOIN Befehl und dem Auslesen desselben apo PHP Tipps 2010 11 13.06.2010 19:32
Integration eines Pluginsystems in einer HMVC Struktur Anyone Software-Design 17 21.12.2009 20:10
[PDO] Frage zur Portabilität freq.9 PHP-Fortgeschrittene 2 29.07.2005 13:28
[Erledigt] frage PHP Tipps 2005-2 9 15.06.2005 13:22
.htaccess - Frage Stümper PHP Tipps 2005 11 30.05.2005 11:56
[Erledigt] Performence Frage PHP-Fortgeschrittene 10 06.05.2005 19:00
Frage zu einem Editformular PHP Tipps 2005 3 25.04.2005 14:58
Frage: gibt es bei PHP sowas wie target="_blank" PHP Tipps 2005 6 20.04.2005 06:27
mal ne Frage PHP Tipps 2005 7 14.04.2005 09:46
Technische Frage zur Realisation einer Online-Umfrage Stefano PHP Tipps 2005 5 16.03.2005 17:39
Frage zu einer Liste? HTML, Usability und Barrierefreiheit 2 15.02.2005 16:56
Hallo und Frage zu dynamischer Veränderung in Textfeldern. PHP Tipps 2004-2 2 27.12.2004 22:29
[Erledigt] Frage zur Funkrionen? PHP Tipps 2004-2 10 01.12.2004 09:42
Kurze Frage an die Php Profis PHP Tipps 2004-2 11 24.11.2004 17:38

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
http://www.php.de/software-design/71270-hmvc-frage-3.html, php hmvc framework, hmvc, hmvc frage

Alle Zeitangaben in WEZ +1. Es ist jetzt 02:38 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