public function testCanCompileByDirectoryAndClassName() { $this->compilerDefinition->addClassToProcess('OcraDiCompilerTest\\TestAsset\\ExampleEmptyClass'); $this->compilerDefinition->addDirectory(__DIR__); $this->compilerDefinition->compile(); $definition = $this->compilerDefinition->toArrayDefinition()->toArray(); $this->assertCount(2, $definition); $this->assertArrayHasKey('OcraDiCompilerTest\\TestAsset\\ExampleEmptyClass', $definition); $this->assertArrayHasKey(__CLASS__, $definition); }
/** * @param $config * @param null|Di $di * @return string */ protected function getDiDefinitions($config, Di $di = null) { ErrorHandler::start(); if ($arrayDefinitions = (include $config['ocra_di_compiler']['compiled_di_definitions_filename'])) { ErrorHandler::stop(); return $config['ocra_di_compiler']['compiled_di_definitions_filename']; } ErrorHandler::stop(); if (!$di) { $di = new Di(); if (isset($config['di'])) { $diConfig = new DiConfig($config['di']); $diConfig->configure($di); } } $dumper = new Dumper($di); $definitionsCompiler = new ClassListCompilerDefinition(); $definitionsCompiler->addClassesToProcess($dumper->getAllClasses()); $definitionsCompiler->compile(); $fileGenerator = new FileGenerator(); $fileGenerator->setFilename($config['ocra_di_compiler']['compiled_di_definitions_filename']); $fileGenerator->setBody('return ' . var_export($definitionsCompiler->toArrayDefinition()->toArray(), true) . ';'); $fileGenerator->write(); return $config['ocra_di_compiler']['compiled_di_definitions_filename']; }