Controlla questo:
public function __construct(
\Magento\Framework\Model\Context $context,
\Magento\Framework\View\DesignInterface $design,
\Magento\Framework\Registry $registry,
\Magento\Store\Model\App\Emulation $appEmulation,
\Magento\Store\Model\StoreManagerInterface $storeManager,
\Magento\Framework\App\RequestInterface $request,
\Magento\Newsletter\Model\Template\Filter $filter,
\Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig,
\Magento\Newsletter\Model\TemplateFactory $templateFactory,
\Magento\Framework\Filter\FilterManager $filterManager,
array $data = []
) {
parent::__construct($context, $design, $registry, $appEmulation, $storeManager, $data);
$this->_storeManager = $storeManager;
$this->_request = $request;
$this->_filter = $filter;
$this->_scopeConfig = $scopeConfig;
$this->_templateFactory = $templateFactory;
$this->_filterManager = $filterManager;
}
Si tratta di link
La dichiarazione della funzione occupa più spazio del corpo.
Penso che abbia qualcosa a che fare con l'iniezione della dipendenza.
Qual è il vantaggio di strutturare il tuo codice come sopra invece di qualcosa del genere:
public function __construct(Magento $magento, array $data = []
) {
parent::__construct($magento->context, $magento->design, $magento->registry, $magento->appEmulation, $magento->storeManager, $data);
$this->_storeManager = $magento->storeManager;
$this->_request = $magento->request;
$this->_filter = $magento->filter;
$this->_scopeConfig = $magento->scopeConfig;
$this->_templateFactory = $magento->templateFactory;
$this->_filterManager = $magento->filterManager;
}
Si noti che ho solo bisogno di creare l'istanza Magento una volta. Poi lo passo a tutte le classi che hanno bisogno di roba.