Ich erstelle ein benutzerdefiniertes Modul. Dies ist die bevorzugte Methode, um die Sammlung zu erhalten. Ich muss den Vor- und Nachteil dieser Methode kennen.
objectManager
$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$productCollection = $objectManager->create('Magento\Catalog\Model\ResourceModel\Product\Collection');
$productCollection->load();
Fabrik
protected $_productCollectionFactory;
public function __construct(
\Magento\Catalog\Model\ResourceModel\Product\CollectionFactory $productCollectionFactory,
array $data = []
) {
$this->_productCollectionFactory = $productCollectionFactory;
parent::__construct($data);
}
public function getProductCollection()
{
/** @var $collection \Magento\Catalog\Model\ResourceModel\Product\Collection */
$collection = $this->_productCollectionFactory->create();
return $collection;
}
quelle
\Magento\Framework\Event\ObserverFactory
?Verwenden Sie die Factory-Methode , um sie in Magento 2 anstelle des Objektmanagers zu verwenden.
Im Kernsystem Magento 2 werden am häufigsten Factory-Methoden anstelle von Objectmanager verwendet.
Sie können das Objektmanager-Konzept verwenden, während Sie mit dem Root-Skript spielen, oder Sie haben keinen Block für die Vorlagendatei erstellt. Sie können den Objektmanager direkt aufrufen.
Factorymethod ist jedoch die richtige Methode für das Magento 2-System.
quelle