php.de

Zurück   php.de > Webentwicklung > PHP-Fortgeschrittene

PHP-Fortgeschrittene Arbeiten mit PHP ohne Einschränkungen

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 07.01.2011, 20:39  
Erfahrener Benutzer
 
Registriert seit: 25.05.2010
Beiträge: 852
PHP-Kenntnisse:
Anfänger
Trainmaster wird schon bald berühmt werden
Standard

Aber geht es nicht darum, dem Model die Resource zu übergeben um so globale Objektzugriffe zu minimieren/vermeiden?
Trainmaster ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 07.01.2011, 20:41  
Erfahrener Benutzer
 
Benutzerbild von bitsnack
 
Registriert seit: 01.08.2010
Beiträge: 352
PHP-Kenntnisse:
Fortgeschritten
bitsnack befindet sich auf einem aufstrebenden Ast
bitsnack eine Nachricht über ICQ schicken bitsnack eine Nachricht über MSN schicken bitsnack eine Nachricht über Skype™ schicken
Standard

Das Model muss hier aber selbst entscheiden ob es jetzt z.B. eine Datei benutzt oder die Datenbank wenn ich dich richtig verstanden habe, was ja das was man eigentlich ermöglichen will verunmöglicht.
Wenn du aber meinst das man als db-Resource eben auch ein Objekt einer Dateiklasse übergeben kann bzw. es so gedacht wäre ist es einfach Dependency Injection über einen abstrakten Setter, nicht?
bitsnack ist offline   Mit Zitat antworten
Alt 07.01.2011, 20:52  
Erfahrener Benutzer
 
Registriert seit: 25.05.2010
Beiträge: 852
PHP-Kenntnisse:
Anfänger
Trainmaster wird schon bald berühmt werden
Standard

Jein, das Model kann schlichtweg auf verschiedene Resourcen zugreifen und damit arbeiten. Es geht nicht darum, dass das Model entscheidet, welche Resource es benutzt, sondern darum, dass in den Methoden des Models mit diversen Resourcen gearbeitet werden kann.
Trainmaster ist offline   Mit Zitat antworten
Alt 07.01.2011, 20:57  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
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

Zitat:
Jein, das Model kann schlichtweg auf verschiedene Resourcen zugreifen und damit arbeiten. Es geht nicht darum, dass das Model entscheidet, welche Resource es benutzt, sondern darum, dass in den Methoden des Models mit diversen Resourcen gearbeitet werden kann.
Dann musst Du aber das Model auch so anlegen und dann kannst Du auch gleich die benötigten Ressourcen als Parameterliste setzen:

PHP-Code:
$dbo = new MyFooDBO ('connection data here'); 
$sessionHandler = new SessionContainer ('MyFooNamespace');

$mm = new MyFooModel ($dbo $sessionHandler);


class 
MyFooModel
{
  function 
__construct (MyFooDataStore $dataContainer KeyValueStoreInterface $settingsContainer)
    {
    
$this->dataContainer $dataContainer;
    
$this->settingsContainer $settingsContainer;
    }

Es geht nicht darum, den Ablauf im Model möglichst flexibel zu halten, der steht fest. Sondern darum, möglichst flexibel Resourcen anbinden zu können und diese ggf. austauschen zu können. setResource() macht schon den Anschein, dass es später eine Entscheidungssituation gibt.
__________________
--
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 07.01.2011, 21:02  
Erfahrener Benutzer
 
Registriert seit: 21.12.2009
Beiträge: 415
PHP-Kenntnisse:
Fortgeschritten
G.Schuster ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Zitat von Trainmaster Beitrag anzeigen
Ich hoffe, dass ich das ganze so richtig aufgefasst habe
Nö.
Aber da offensichtlich eh keiner die von mir schon weiter oben geposteten Resourcen liest klink ich mich hier aus, ich werf die Perlen lieber anderen Säuen vor...
__________________
actra.development - Schwabstr. 2 - 70825 Münchingen
www.actra.de/velopment/ - eMail: php.de@actra.de
Zend Certified Engineer for PHP5
G.Schuster ist offline   Mit Zitat antworten
Alt 07.01.2011, 21:45  
Erfahrener Benutzer
 
Benutzerbild von bitsnack
 
Registriert seit: 01.08.2010
Beiträge: 352
PHP-Kenntnisse:
Fortgeschritten
bitsnack befindet sich auf einem aufstrebenden Ast
bitsnack eine Nachricht über ICQ schicken bitsnack eine Nachricht über MSN schicken bitsnack eine Nachricht über Skype™ schicken
Standard

Zitat:
Zitat von G.Schuster Beitrag anzeigen
Nö.
Aber da offensichtlich eh keiner die von mir schon weiter oben geposteten Resourcen liest klink ich mich hier aus, ich werf die Perlen lieber anderen Säuen vor...
Habe mir das durchaus angesehen, weiss aber nicht ob ich es richtig verstanden habe:

Es gibt für jedes Model also das Model selbst welches eigentlich nur als Datenobjekt fungiert, einen Mapper welcher die Daten irgendwie und irgendwo speichert und einen Service welcher die Daten validiert und den man schlussendlich benutzt. Um beim Beispiel des Links zu bleiben: Eine Person erstellen müsste also folgendermassen funktionieren:

PHP-Code:
$personservice = new PersonService();
$personservice->create(array('username' => ...)); 
Ist das so richtig?
bitsnack ist offline   Mit Zitat antworten
Alt 07.01.2011, 22:55  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
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 irgendwo ist das ja logisch. Gerade wenn eine Liste von Personen in der DB gehalten wird braucht man ja eine übergeordnete Instanz, die dann eben ein Personenobjekt liefert/erzeugt.
__________________
--
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 09.01.2011, 17:58  
Erfahrener Benutzer
 
Registriert seit: 25.05.2010
Beiträge: 852
PHP-Kenntnisse:
Anfänger
Trainmaster wird schon bald berühmt werden
Standard

Zitat:
Zitat von G.Schuster Beitrag anzeigen
Nö.
Aber da offensichtlich eh keiner die von mir schon weiter oben geposteten Resourcen liest klink ich mich hier aus.
Ehrlich gesagt hatte ich bei deinen genannten Resourcen bei der ein oder anderen Stelle Verständnisschwierigkeiten bzw. sind mir die konkreten Beziehungen nicht klar geworden. Vor allem, wie ich die spezifischen Schichten auf das MVC-Prinzip übertragen soll.

Soweit ich das Ganze nach meinem Verständnis auffassen konnte, ist das Model an sich völlig "dumm". Die Methoden eines Models, in diesem Beispiel die Klasse Person, haben bspw. eine konkrete Datenbank-Abfrage nicht selbst implementiert, sondern beziehen sich auf ihre spezifischen Mapper. Das kann beispielweise ein Mapper für die Session-Resource als auch für eine DB-Resource sein, korrekt? So ruft zum Beispiel die Method logout() der Klasse Person eine Methode saveXYZ() des spezifischen Resource-Mappers auf. Den angesprochenen ServiceLayer verstehe ich als einen spezifischen Controller der Person-Klasse.

Wie gesagt, ich finde dies mehrschichtige Konzept für einen "Laien" wie mich nicht auf Anhieb durchschaubar. Dennoch versuche ich mit bestmöglichen Verstand mir daraus etwas abzuleiten. Und nicht zuletzt bietet dieses Forum Platz dafür, um nicht verstandene Themen aufzuarbeiten und zu verstehen.
Trainmaster 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] Framework Kernel Konzept Geryon Software-Design 36 06.10.2010 22:23
[MVC] Daten verschlüsseln & entschlüsseln im Controller oder Model singu Software-Design 19 31.08.2010 00:18
MVC: Request-Parameter ändern, im Controller oder Model? singu Software-Design 5 29.07.2010 17:19
Model view controll Leberwurstbrot PHP Tipps 2010 14 05.03.2010 18:14
Konzept einer Datenbankabstraktion Dark Guardian Software-Design 29 30.01.2010 18:13
Kohana model bereich splasch PHP Tipps 2010 0 24.01.2010 09:03
MVC Model Daten als Referenz oder Kopie übergeben? serious-cool PHP Tipps 2009 1 12.01.2010 22:10
[Erledigt] Konzept für einen PHP Web Crawler Dark Guardian Software-Design 10 23.11.2009 16:31
MVC Konzept Babbsdrebbler Software-Design 6 30.10.2009 08:13
Konzept für Bowsergame Wiillli Beitragsarchiv 1 21.10.2009 15:18
Singleton Model oder Vererbung ? MollocH PHP-Fortgeschrittene 2 10.02.2009 20:32
kleines DB Konzept Tomte Datenbanken 21 23.08.2008 10:22
Konzept Frage (2), DB Package greg PHP-Fortgeschrittene 0 15.07.2006 14:19
Konzept GFX-Community PHP Tipps 2005-2 2 22.08.2005 10:22


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