Czy oba warianty zastępowania i przepisywania są takie same w Magento. Szukałem dużo, ale nie znalazłem żadnej odpowiedzi.Różnica między przesłanianiem a przepisywaniem w magento
Dzięki
Czy oba warianty zastępowania i przepisywania są takie same w Magento. Szukałem dużo, ale nie znalazłem żadnej odpowiedzi.Różnica między przesłanianiem a przepisywaniem w magento
Dzięki
Krótka odpowiedź: tak, ale to zależy od tego kim rozmawiać.
Wszystkie przepisane są przesłonięcia, ale nie wszystkie przesłonięcia są przepisywane. A przepisać w języku Magento powinien odnosić się tylko do nadpisań klas opartych na konfiguracji. Metody fabryczne są wykorzystywane przez ramach instancji typów MVC:
Mage_Core_Model_Layout->createBlock()
Mage::helper()
Mage::getModel()
Mage::getResourceModel()
Te sposoby ogólnie pasuje grupa klas (np. catalog
) na prefiks klasy (np. sol. Mage_Catalog_Model
) w celu utworzenia instancji konkretnej klasy (np. Mage::getModel('catalog/product')
daje Mage_Catalog_Model_Product
). To odwzorowanie umożliwia programistom określenie określonej ścieżki xpath związanej z argumentem klasy (na przykład 'catalog/product'
& global/models/catalog/rewrite/product
) w celu określenia alternatywnej klasy do utworzenia instancji. Stąd odpowiedzialność za dziedziczenie, stosownie do tego, aby osiągnąć prawidłowe przesuwanie się, zależy od programisty.
Istnieją inne mechanizmy uzyskiwania przesłonięć, z których najczęstszym jest tak zwany "włamać się do ścieżki", który pozwala na zdefiniowanie klas z "niższych" katalogów automatycznych (re) w katalogach wyższego poziomu w następujący porządek pierwszeństwa (zauważ, że app/code/local/):
Ten styl ręcznym należy uznać za przypadek oznacza ostatniej zmiany kodu rdzenia. Ma uzasadnione przypadki użycia (szczególnie w przypadku przestrzegania DRY), ale może być nieoczywiste w aktualizacji.
Wielkie dzięki Ben !! –