Perfect Unterschied mit Beispiel für GetSingleton und GetModel.
Mage :: getSingleton()
Mage :: getSingleton() wird zunächst prüfen, ob die gleiche Klasseninstanz oder nicht im Speicher vorhanden ist. Wenn die Instanz existiert, wird das gleiche Objekt aus dem Speicher zurückgegeben. Also ist Mage :: getSingleton() schneller als Mage :: getModel().
Beispiel
$product1 = Mage::getSingleton('catalog/product');
$product2 = Mage::getSingleton('catalog/product');
$ product1 und beide $ product2 wird denselben Speicher von OS gemeinsam nutzen und nur eine Instanz jedes Mal zurück.
Mage :: getModel()
Mage :: getModel() wird eine neue Instanz eines Objekts erstellen jedes Mal auch eine solche Aufgabe in der Konfiguration vorhanden ist.
Beispiel
$product1 = Mage::getModel('catalog/product');
$product2 = Mage::getModel('catalog/product');
$ product1 und beide haben $ product2 verschiedenen Instant von demselben Objekt und auch besetzen verschiedene Speicher
Mage :: getResourceModel()
Soweit ich weiß, Alle Sammlungen in Magento sind Ressourcenmodelle. Sie werden instanziiert von
Mage::getResourceModel()
oder
Mage::getModel()->getCollection()
Es spielt keine Rolle, die Sie funktionieren verwenden; Letzterer nennt einfach den ersten. Das Magento-Team entschied sich einfach dazu, die Sammlungen zu einem Teil der Ressource zu machen, wahrscheinlich weil die Sammlungen die Datenbank viel abfragen müssen. Normalerweise müssen Sie Mage::getResourceModel()
für alles andere als Sammlungen aufrufen.
guter Beitrag von balajimca
Gott segnen deine Seele für diese Erklärung. – ahnbizcad