php.de

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

PHP-Fortgeschrittene Arbeiten mit PHP ohne Einschränkungen

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 09.08.2011, 12:54  
Erfahrener Benutzer
 
Registriert seit: 26.11.2008
Beiträge: 264
dsentker befindet sich auf einem aufstrebenden Ast
Standard [Erledigt] MVC: Virtuelle Models abbilden?

Huhu,

ich weiss nicht so Recht ob der Titel passt, aber ich arbeite schon seit längerem mit MVC. Dabei werden meine Models von Repositories verwaltet, also etwa

PHP-Code:
$user = new User();
$user->name 'Max';
$user->created_at date('Y-m-d');

$userRepository->persist($user); 
Soweit, so gut. Nun habe ich für ein Projekt ein Gästebuch. Dabei gibt es nicht *das* Gästebuch, sondern nur Gästebucheinträge, die einer UserId zugeordnet sind.

Jetzt meine Frage an euch - erstellte ich ein "virtuelles" Model, etwa

PHP-Code:
class GuestBook {
   public function 
getEntriesForUser(User $user) {

   }

..oder sollte ich es wie gehabt machen und sagen "Ein Gästebucheintrag = Ein Model" ?
__________________
dsentker ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 09.08.2011, 13:23  
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

Das Modell für Gästebucheinträge ist doch für jeden User verwendbar - EIN Model, VIELE Einträge.

"wie gehabt" kenn ich leider nicht, jedenfalls ist ein Model nur eine Schablone. Wenn du pro konkretem Eintrag ein eigenes Model erstellst, machst du was falsch.
__________________
Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.
lstegelitz ist offline   Mit Zitat antworten
Alt 09.08.2011, 13:36  
Erfahrener Benutzer
 
Registriert seit: 26.11.2008
Beiträge: 264
dsentker befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Wenn du pro konkretem Eintrag ein eigenes Model erstellst, machst du was falsch
Ich war immer der Meinung, dass ein Model einem Datenbankeintrag gleichen sollte.

Kannst du begründen, warum man nicht pro DB-Eintrag ein Model benutzen soll?
__________________
dsentker ist offline   Mit Zitat antworten
Alt 09.08.2011, 15:14  
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

"Gleichen" ja. Vielleicht haben wir auch nur ein Mißverständnis hier...

Ein "Model" ist eine Klasse, die eine Tabelle repräsentiert... für jede konkrete Zeile der Tabelle wird ein konkretes Objekt der Klasse erzeugt.
__________________
Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.
lstegelitz ist offline   Mit Zitat antworten
Alt 09.08.2011, 15:20  
Erfahrener Benutzer
 
Registriert seit: 26.11.2008
Beiträge: 264
dsentker befindet sich auf einem aufstrebenden Ast
Standard

Dann widersprichst du dir aber.

Zitat:
Zitat von lstegelitz Beitrag anzeigen
Wenn du pro konkretem Eintrag ein eigenes Model erstellst, machst du was falsch.
Zitat:
Zitat von lstegelitz Beitrag anzeigen
Ein "Model" ist eine Klasse, die eine Tabelle repräsentiert... für jede konkrete Zeile der Tabelle wird ein konkretes Objekt der Klasse erzeugt.
__________________
dsentker ist offline   Mit Zitat antworten
Alt 09.08.2011, 16:04  
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

Nein, tue ich nicht.

Eine Klasse ist nur eine Schablone, ein Muster.
Ein konkretes Objekt ist nach diesem Muster aufgebaut.

Eine Tabelle ist ebenfalls nur ein Muster.
Eine Zeile in der Tabelle ist nach eben diesem Muster aufgebaut.

Du legst doch nicht für jede zu speichernde Zeile eine neue Tabelle an, oder?

Ich denke, du verwechselst "Model" bzw. "Klasse" mit "Datensatz" bzw. "Objekt".
__________________
Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.
lstegelitz ist offline   Mit Zitat antworten
Alt 09.08.2011, 16:18  
Erfahrener Benutzer
 
Registriert seit: 26.11.2008
Beiträge: 264
dsentker befindet sich auf einem aufstrebenden Ast
Standard

Aber ein Model sollte doch ein Objekt sein? Beispiel - Usertabelle beinhaltet Vorname, Nachname und Firmenname. In den Views soll nun, wenn vorhanden, der Firmenname ausgegeben werden. Ansonsten der Vor- und Nachname. Das ist dann Teil des Models. Und weil jeder Eintrag der Tabelle ein Model ist, kann ich die Funktion ganz einfach implementieren:

PHP-Code:
public function getDisplayName() {
    return (empty(
$this->firma))
        ? 
$this->vorname ' ' $this->nachname
        
$this->firma;

__________________
dsentker ist offline   Mit Zitat antworten
Alt 09.08.2011, 17:10  
Erfahrener Benutzer
 
Registriert seit: 30.07.2008
Beiträge: 1.167
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

Nein: Unter Model versteht man hier die Repräsentation der Struktur einer Tabellenzelle. Die Instanzen des Models selber sind aber nicht jede für sich ein eigenes "Model".
Zitat:
Und weil jeder Eintrag der Tabelle ein Model ist
Falsch - Das Model ist die Klasse
xm22 ist offline   Mit Zitat antworten
Alt 09.08.2011, 17:14  
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:
Ein "Model" ist eine Klasse, die eine Tabelle repräsentiert... für jede konkrete Zeile der Tabelle wird ein konkretes Objekt der Klasse erzeugt.
Ich würde das nicht so pauschalisieren. Eine Datenbank ist erstmal nur ein Datenspeicher. Inwieweit das Model diesen 1:1 abbildet oder nur einen Teil oder durch andere Datenspeicher ergänzt oder intern Daten anders vorhält, ist für die Implementierung entscheidend. Model != DAO
Auch dass ein Model == einem Record entspricht, ist pauschal nicht richtig. Genausogut kann ein Model für ein Gästebuch alle Datensätze vorhalten.
__________________
--
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.08.2011, 17:26  
Erfahrener Benutzer
 
Registriert seit: 11.04.2011
Beiträge: 260
PHP-Kenntnisse:
Fortgeschritten
lcrash wird schon bald berühmt werden
Standard

Bei mir ist jede Zeile ein Model. Der Mapper hält dabei die Models für die Abfrage. Der Mapper holt die Daten aus der DAO ab und erzeugt anhand deren die Models, bzw. bei einem find($id) nur eines. Das Model selbst kennt auch seinen Mapper und kann über diesen sich selbst speichern. Es ist auch möglich ein Model zu erzeugen und dieses an den Mapper durch zureichen.
lcrash 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
Baum in Array abbilden LeoLinux PHP Einsteiger 4 07.04.2011 23:39
[Erledigt] mySQL-Query als Array abbilden Koala PHP Einsteiger 12 21.01.2011 13:54
[Erledigt] Virtuelle Verzeichnisstruktur mit mod_rewrite Frank PHP Tipps 2009 2 10.12.2009 01:12
Metadaten aus einem Word-Document auf dem web mittels PHP abbilden ben_89 PHP Tipps 2009 8 13.05.2009 14:58
Eine virtuelle Airline sucht nach einem PHP/SQL Programmierer karsten77 Beitragsarchiv 0 14.04.2009 19:39
[Erledigt] Hierarchie in Tabelle abbilden jenny Datenbanken 7 27.10.2008 18:45
Htaccess Virtuelle Ordner sashapepper Server, Hosting und Workstations 1 24.10.2008 18:18
virtuelle ordner und htaccess Wolla Server, Hosting und Workstations 7 25.07.2008 22:01
Virtuelle Hosts FireFIghter Server, Hosting und Workstations 17 17.01.2006 22:58
"Die virtuelle Welt" sucht Programmierer Beitragsarchiv 12 08.12.2005 09:49
PhpMyAdmin und virtuelle Hosts Server, Hosting und Workstations 5 18.09.2005 18:54
virtuelle rezeption oder life chat JEGO Beitragsarchiv 5 19.04.2005 15:49
Postfix, PHP und virtuelle Linuxuser Server, Hosting und Workstations 0 04.04.2005 05:12
Virtuelle mySQLDatenbank programme für localhost PHP Tipps 2005 3 25.03.2005 20:00
Dynamische Verzeichnisse / Virtuelle Verzeichnisse PHP-Fortgeschrittene 1 30.10.2004 14:38

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
virtuelle models, mvc abbilden, virtuelle model thread, php objekte zuordnungstabellen eigenes model

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