Magento Perbedaan getModel VS getResourceModel

Cara memanggil model di magento terdapat banyak cara, namun ternyata ada aturannya masing-masing.
351  
       

Didalam pemrograman Magento seperti pada framework pada umumnya, ada pemanggilan model. Namun saking banyaknya cara untuk memanggil model di magento, terdapat beberapa fungsi yang hampir sama namun ternyata ada porsi atau ketentuannya masing-masing.

Fungsi getSingleton

Berikut ini adalah cara memanggil getSingleton.

Mage::getSingleton()

Fungsi get singleton pada dasarnya akan memeriksa terlebih dahulu, apakah model atau kelas yang dipangging sudah terinstansiasi di memori atau belum. Jik sudah ada, maka objek yang ada dimemori akan dikembalikan dari memori. Jadi, sudah pasti fungsi ini memiliki kecepatan dan penghematan dalam penggunaan memori.

Adapun ilustrasi dari penggunaan getSingleton magento.

$product1 = Mage::getSingleton('catalog/product');
$product2 = Mage::getSingleton('catalog/product');
$product1 and $product2 both will share same memory of OS and return only one instance each time.

Fungsi getModel

Berikut ini adalah fungsi getModel.

Mage::getModel()

Berbeda dengan getSingleton, getModel akan selalu instansiasi objek baru untuk setiap model yang dipanggilnya. Hal ini biasanya digunakan untuk perbandingan dua result yang berbeda, sehingga tetap menghasilkan result yang kredibel.

Adapun ilustrasi dari penggunaan getModel magento.

$product1 = Mage::getModel('catalog/product');
$product2 = Mage::getModel('catalog/product');
$product1 and $product2 both have different instant of same object and also occupy different memory

Fungsi getResourceModel

Berikut ini adalah kode untuk memanggil getResourceModel.

Mage::getResourceModel()

Penggunaan fungsi getResourceModel merupakan fungsi yang akan digunakan untuk memanggil koleksi data dari setiap resource model. Biasanya digunakan oleh Mage::getResourceModel() atau Mage::getModel()->getCollection().

Tidak masalah fungsi yang mana yang akan anda gunakan. Yang penting hasilnya bisa sama. Tim developer magento sudah mempermudahnya supaya semua koleksi (collection result) ada didalam kelas getResourceModel(). Mungkin salah satu alasan karena didalam koleksi terlalu banyak query sehingga didalam resource model sudah disatukan. Yang penting, jangan pernah memanggil getResourceModel jika bukan untuk dipergunakan menarik koleksi.

Demikian semoga membantu.

Sumber: stackoverflow. Alan Strom Blog.

3 Responses to “Magento Perbedaan getModel VS getResourceModel”

Leave a Reply

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>