En Magento 1
estábamos acostumbrados a colocar nuestras clases en estos directorios
- Bloquear
- Ayudante
- Modelo
- Recurso
y use un nombre de clase simple sin letras mayúsculas en el medio del nombre.
Si echamos un vistazo a algunos casos en Magento 2 Core
Ayudantes
Ubicación :
- \Foo\Bar\Helper
Nombre :
- *.php
Ejemplos :
- \Magento\ImportExport\Helper\Report
-\Magento\Cms\Helper\Wysiwyg\Images
Observadores
Ubicación :
- \Foo\Bar\Observer
Nombre :
- *.php
- *Observer.php
Ejemplos :
- \Magento\CustomerCustomAttributes\Observer\SalesOrderAddressAfterLoad
-\Magento\CustomerBalance\Observer\ProcessBeforeOrderPlaceObserver
Complementos
Ubicación :
- \Foo\Bar\Plugin
Nombre :
- *.php
- *Plugin.php
Ejemplos :
- \Magento\Catalog\Plugin\Block\Topmenu
- \Magento\PageCache\Model\App\FrontController\BuiltinPlugin
Fuente : http://devdocs.magento.com/guides/v2.0/extension-dev-guide/plugins.html#declaring-a-plugin
ConfigProvider
Ubicación :
- \Foo\Bar\Model
Nombre :
- *ConfigProvider.php
Ejemplos :
- \Magento\Tax\Model\TaxConfigProvider
-\Magento\Payment\Model\IframeConfigProvider
Mis preguntas son:
- Si hay alguna
good
/bad
/best
prácticas para eso enMagento 2
? - Si quiero crear una personalizada,
DataProvider
por ejemplo, ¿cuál será?\Foo\Bar\Provider\CustomDataProvider
\Foo\Bar\DataProvider\Custom
\Foo\Bar\Model\Provider\CustomDataProvider
\Foo\Bar\Helper\Provider\CustomDataProvider
- ¿Cómo determinar la construcción del nombre y ubicación de la clase, una carpeta en la raíz del módulo, en Modelo, en Ayudante, etc.?
- ¿Depende de la fuente de datos recuperada / tipo de datos?
- ¿Cuándo tenemos que agregar el sufijo al nombre de la clase?
Una parte de una respuesta para
Virtual Types
: https://community.magento.com/t5/Magento-DevBlog/Virtual-Types-Naming-Convention/ba-p/61510