5 Stimmen

Unterschied zwischen Model und Model Resource

Ich beginne ein Projekt mit Magento. Lassen Sie mich zuerst sagen, dass ich aus der MS-Welt komme, ich habe noch nie zuvor PHP verwendet, und obwohl ich mich ziemlich schnell einarbeite, bin ich definitiv ein PHP-Neuling.

Ich scheine die Unterschiede zwischen den Modell-, Ressourcenmodell-, Ressourcen- und Entitätsobjekten in der Magento-Architektur nicht ganz zu erfassen.

Ich habe tagelang gegoogelt und nur wenig Informationen gefunden, und was ich gefunden habe, erklärt es nicht wirklich!

20voto

Greg Punkte 10290

Magento unterscheidet sich stark von typischer PHP-Entwicklung und was es Dinge nennt, stimmt nicht immer mit dem überein, was andere Leute sie nennen. Magento teilt die Modellschicht in zwei Teile auf, wie Sie erkannt haben, wobei das Modell die Geschäftslogik behandelt und der Ressourcenteil nur die Kommunikation mit der Datenbank abwickelt - die Theorie besagt, dass Sie, wenn Sie sich für einen Datenbanktyp entscheiden, der nicht mit PDO ansprechbar ist, eine andere Ressource einsetzen könnten, um das Laden und Speichern zu verarbeiten, ohne dass die Logik, die diese Vorgänge umgibt, davon betroffen ist.

Die beiden verschiedenen Arten von Ressourcen, die Magento hat, sind Entity und Mysql4 - letzteres ist ein ziemlich standardmäßiges Tabellen-Gateway-System, bei dem die Ressource einer Tabelle in der Datenbank zugeordnet wird, während ersteres etwas komplizierter ist. Um es Benutzern und Entwicklern wirklich einfach zu machen, benutzerdefinierte Felder hinzuzufügen, werden die Hauptteile von Magento (Produkte, Kunden, Bestellungen usw.) alle durch das sogenannte Entity-Attribute-Value-System (EAV) repräsentiert, bei dem statt einer typisierten Spalte pro Wert eine Zeile mit einem Schlüssel (vgl. Spaltenname) und einem Wert vorhanden ist. Die Entity-Ressourcen übernehmen das Mapping dieser EAV-Tabellen auf das Feld-Array, das die Daten enthält.

Es sei jedoch betont, dass dies weit entfernt von typisch für eine PHP-Anwendung ist, und wenn Ihre Absicht darin besteht, PHP zu lernen, würde ich ein anderes System wählen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X