2012-04-03 2 views
7

Es scheint zwei Arten von Ordnerstruktur im Kern Magento, wenn es um Ressourcen geht. Es gibt ziemlich viel mit dem mysql4-Ordner und andere einfache Verwendung von Resource-Ordner.Magento - Modul Konventionen mysql4 oder Ressource

I.e. Installationsskript würde hier leben: Mycompany_Mymodule_Model_Resource_Setup.

Gibt es einen Grund dafür, Vermächtnis oder anders - oder ist das einfach ein Codierungsstil zwischen verschiedenen Kernentwicklern?

Antwort

16

Erstens: Magentos Ordnerstruktur existiert nur wegen seiner Autoloader-Implementierung. Wenn Sie versuchen, zu viel Bedeutung daraus zu ziehen, wo eine Datei in Magento platziert wird, werden Sie verrückt, und verschiedene Module scheinen verschiedenen Konventionen zu folgen. Der Autoloader sucht nach

Mage_Core_Model_Foo_Bar 

in

Mage/Core/Model/Foo/Bar.php 

Also werde ich darüber reden Konventionen unter Benennung, die indirekt adressieren, warum eine Datei in einem bestimmten Ordner ist.

Ursprünglich wurden alle Datenbankressourcen mit der Konvention Mysql4 benannt. Ich habe mit ein paar der ursprünglichen Entwickler gesprochen, und die Absicht war zu bezeichnen, dass die Ressource für die damals "Standard" Mysql 4-Datenbank war. Wenn eine Ressource eine bestimmte Funktion von beispielsweise Mysql 5 verwendet, dann hätten sie eine Mysql5 Konvention verwendet.

Da Magento Inc. die übliche Startup Churn durchlaufen hat und andere Entwickler übernommen haben, wo die ursprünglichen Entwickler aufgehört haben, hat sich das Denken geändert. Die Magento 1.6-Version, die den Grundstein für die Unterstützung von mehreren RDBMS durch die Enterprise Edition legte, änderte, wie diese Ressourcen funktionierten und benannt wurden.

Backwards compatibility wurde beibehalten, aber die meisten der alten Mysql4 Ressourcen wurden die generische Resource und ein new method für mehrere RDBMS Unterstützung eingeführt wurde, verwenden umbenannt.

+0

Ok toll - danke Alan, ich war mir ziemlich sicher, dass es eine Vermächtnis Sache wäre. –