/** * @covers Magento_Di_Definition_CompilerDefinition_Zend::addDirectory * @covers Magento_Di_Definition_CompilerDefinition_Zend::compile * @covers Magento_Di_Definition_CompilerDefinition_Zend::toArray */ public function testCompiler() { $compiler = new Magento_Di_Definition_CompilerDefinition_Zend(); $compiler->addDirectory(__DIR__ . '/TestAsset'); $compiler->compile(); $expectedDefinitions = (include __DIR__ . '/_files/definitions.php'); $actualDefinitions = $compiler->toArray(); $this->assertEquals($expectedDefinitions, $actualDefinitions); }
/** * Compile definitions using Magento_Di_Definition_CompilerDefinition_Zend * * @param string $moduleDir * @return array */ protected function _compileModuleDefinitions($moduleDir) { $strategy = new \Zend\Di\Definition\IntrospectionStrategy(new \Zend\Code\Annotation\AnnotationManager()); $strategy->setMethodNameInclusionPatterns(array()); $strategy->setInterfaceInjectionInclusionPatterns(array()); $compiler = new Magento_Di_Definition_CompilerDefinition_Zend($strategy); $compiler->addDirectory($moduleDir); $controllerPath = $moduleDir . '/controllers/'; if (file_exists($controllerPath)) { /** @var $file DirectoryIterator */ foreach (new RecursiveIteratorIterator(new RecursiveDirectoryIterator($controllerPath)) as $file) { if (!$file->isDir()) { require_once $file->getPathname(); } } } $compiler->compile(); $moduleDefinitions = $compiler->toArray(); return $moduleDefinitions; }