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);
 }
Example #2
0
 /**
  * @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'];
 }