2012-04-03 12 views
7

Parece que hay dos estilos de estructura de carpetas en el núcleo de Magento cuando se trata de recursos. Hay un montón de uso de la carpeta mysql4 y otra carpeta de recursos de uso simple.Magento - convenciones del módulo mysql4 o recurso

I.e. script de instalación viviría aquí: Mycompany_Mymodule_Model_Resource_Setup.

¿Hay alguna razón para esto, herencia o no, o simplemente es un estilo de codificación entre diferentes desarrolladores principales?

Respuesta

16

Primero: la estructura de carpetas de Magento existe solo debido a la implementación del autocargador. Si tratas de derivar demasiado significado de dónde se coloca un archivo en Magento, te volverás loco, y los diferentes módulos parecen seguir diferentes convenciones. El cargador automático buscará

Mage_Core_Model_Foo_Bar 

en

Mage/Core/Model/Foo/Bar.php 

Así que voy a estar hablando de las convenciones de nomenclatura de abajo, donde se abordarán indirectamente por las que un archivo está en una carpeta determinada.

Originalmente todos los recursos de bases de datos se nombraron con la convención Mysql4. He hablado con algunos de los desarrolladores originales, y la intención era denotar que el recurso era para la base de datos entonces "estándar" de Mysql 4. Si un recurso utiliza una característica específica de, digamos, Mysql 5, entonces habría usado una convención Mysql5.

Como Magento Inc. pasó por la rotación de inicio habitual y otros desarrolladores se hicieron cargo de donde los desarrolladores originales lo dejaron, el pensamiento cambió en esto. El lanzamiento de Magento 1.6, que sentó las bases para el soporte de Enterprise Edition de múltiples RDBMS, alteró la forma en que estos recursos funcionaron y fueron nombrados.

Backwards compatibility se mantuvo, pero la mayoría de los viejos Mysql4 recursos se cambió el nombre a usar el genérico Resource, y una new method para soporte de múltiples RDBMS se introdujo.

+0

Muy bien, gracias Alan, estaba bastante seguro de que sería un legado. –

Cuestiones relacionadas