2012-04-03 9 views
7

Wydaje się, że istnieją dwa style struktury folderów w rdzeniu Magento, jeśli chodzi o zasoby. Istnieje bardzo dużo przy użyciu folderu mysql4 i innych prostych przy użyciu folderu zasobów.Magento - konwencje moduł mysql4 lub zasób

tj. instaluje się tutaj skrypt: Mycompany_Mymodule_Model_Resource_Setup.

Czy istnieje ku temu powód, dziedzictwo lub w inny sposób - czy jest to po prostu styl kodowania między różnymi programistami?

Odpowiedz

16

Po pierwsze: struktura folderów Magento istnieje tylko z powodu implementacji autoloadera. Jeśli spróbujesz wywnioskować zbyt wiele znaczenia z miejsca, w którym znajduje się plik w Magento, oszalejesz, a różne moduły wydają się podążać za różnymi konwencjami. Autoloader będzie szukać

Mage_Core_Model_Foo_Bar 

w

Mage/Core/Model/Foo/Bar.php 

Więc będę mówić o nazywanie poniżej konwencje, które pośrednio zająć dlaczego plik jest w danym folderze.

Pierwotnie cały zasób bazy danych został nazwany zgodnie z konwencją Mysql4. Rozmawiałem z kilkoma oryginalnymi programistami, a intencją było oznaczenie, że zasób był dla ówczesnej "standardowej" bazy danych Mysql 4. Jeśli zasób użyłby specjalnej funkcji, powiedzmy Mysql 5, użyłby konwencji Mysql5.

W związku z tym, że Magento Inc. przeszło zwykłą rezygnację z uruchamiania i inni deweloperzy przejęli pierwotną wersję deweloperską, zmieniło się myślenie. Wersja Magento 1.6, która położyła podwaliny pod wersję Enterprise Edition dla wielu RDBMS, zmieniła sposób działania tych zasobów i została nazwana.

Backwards compatibility została utrzymana, ale większość starych Mysql4 zasobów zostały przemianowane używać rodzajowe Resource i new method do obsługi wielu RDBMS został wprowadzony.

+0

Ok świetnie - dzięki Alan, byłem prawie pewien, że to będzie coś starego. –