public function testCompilerFileScanner() { $definition = new CompilerDefinition(); $definition->addCodeScannerFile(new FileScanner(__DIR__ . '/../TestAsset/CompilerClasses/C.php')); $definition->addCodeScannerFile(new FileScanner(__DIR__ . '/../TestAsset/CompilerClasses/D.php')); $definition->addCodeScannerFile(new FileScanner(__DIR__ . '/../TestAsset/CompilerClasses/E.php')); $definition->compile(); $this->assertContains('ZendTest\\Di\\TestAsset\\CompilerClasses\\C', $definition->getClassSupertypes('ZendTest\\Di\\TestAsset\\CompilerClasses\\D')); $this->assertContains('ZendTest\\Di\\TestAsset\\CompilerClasses\\C', $definition->getClassSupertypes('ZendTest\\Di\\TestAsset\\CompilerClasses\\E')); $this->assertContains('ZendTest\\Di\\TestAsset\\CompilerClasses\\D', $definition->getClassSupertypes('ZendTest\\Di\\TestAsset\\CompilerClasses\\E')); }
#!/usr/bin/env php <?php use Zend\Code\Scanner\FileScanner as CodeFileScanner; use Zend\Di\Definition\CompilerDefinition; // Autoloader $vendorDirname = __DIR__ . '/../._test/ZendSkeletonApplication/vendor'; $loader = (require $vendorDirname . '/autoload.php'); $loader->add('WebinoImageThumb', __DIR__ . '/../src'); // Compile Di Definition $diCompiler = new CompilerDefinition(); $diCompiler->addDirectory(__DIR__ . '/../src'); foreach (array() as $file) { $diCompiler->addCodeScannerFile(new CodeFileScanner($file)); } $diCompiler->compile(); $definition = $diCompiler->toArrayDefinition()->toArray(); $dir = __DIR__ . '/../data/di'; is_dir($dir) or mkdir($dir); file_put_contents($dir . '/definition.php', '<?php ' . PHP_EOL . 'return ' . var_export($definition, true) . ';' . PHP_EOL);