/** * Get application plugins * * @return array */ protected function pluginDataProvider() { $files = \Magento\Framework\App\Utility\Files::init()->getDiConfigs(); $plugins = []; foreach ($files as $file) { $dom = new \DOMDocument(); $dom->load($file); $xpath = new \DOMXPath($dom); $pluginList = $xpath->query('//config/type/plugin'); foreach ($pluginList as $node) { /** @var $node \DOMNode */ $type = $node->parentNode->attributes->getNamedItem('name')->nodeValue; $type = \Magento\Framework\App\Utility\Classes::resolveVirtualType($type); if ($node->attributes->getNamedItem('type')) { $plugin = $node->attributes->getNamedItem('type')->nodeValue; $plugin = \Magento\Framework\App\Utility\Classes::resolveVirtualType($plugin); $plugins[] = ['plugin' => $plugin, 'intercepted type' => $type]; } } } return $plugins; }