Dans Magento 1
nous étions habitués à placer nos classes dans ces répertoires
- Bloquer
- Assistant
- Modèle
- Ressource
et utilisez un nom de classe simple sans majuscule au milieu du nom.
Si nous examinons certains cas dans Magento 2 Core
Aides
Lieu :
- \Foo\Bar\Helper
Nom :
- *.php
Exemples :
- \Magento\ImportExport\Helper\Report
-\Magento\Cms\Helper\Wysiwyg\Images
Observateurs
Lieu :
- \Foo\Bar\Observer
Nom :
- *.php
- *Observer.php
Exemples :
- \Magento\CustomerCustomAttributes\Observer\SalesOrderAddressAfterLoad
-\Magento\CustomerBalance\Observer\ProcessBeforeOrderPlaceObserver
Plugins
Emplacement :
- \Foo\Bar\Plugin
Nom :
- *.php
- *Plugin.php
Exemples :
- \Magento\Catalog\Plugin\Block\Topmenu
- \Magento\PageCache\Model\App\FrontController\BuiltinPlugin
Source : http://devdocs.magento.com/guides/v2.0/extension-dev-guide/plugins.html#declaring-a-plugin
ConfigProvider
Lieu :
- \Foo\Bar\Model
Nom :
- *ConfigProvider.php
Exemples :
- \Magento\Tax\Model\TaxConfigProvider
-\Magento\Payment\Model\IframeConfigProvider
Mes questions sont:
- S'il y a des
good
/bad
/best
pratiques pour cela dansMagento 2
? - Si je veux créer un custom
DataProvider
par exemple ce sera quoi?\Foo\Bar\Provider\CustomDataProvider
\Foo\Bar\DataProvider\Custom
\Foo\Bar\Model\Provider\CustomDataProvider
\Foo\Bar\Helper\Provider\CustomDataProvider
- Comment déterminer la construction du nom et de l'emplacement de la classe, un dossier à la racine du module, dans Model, dans Helper, etc.?
- Cela dépend-il de la source de données / du type de données récupérés?
- Quand devons-nous ajouter le suffixe au nom de la classe?
Une partie d'une réponse pour
Virtual Types
: https://community.magento.com/t5/Magento-DevBlog/Virtual-Types-Naming-Convention/ba-p/61510