Ejemplo n.º 1
0
 /**
  * Saves multiple binaries in a single file
  * @param \recompilr\Compiler\AggregateCompiler $compiler
  */
 public function save(\recompilr\Compiler\CompilerInterface $compiler)
 {
     $contents = '';
     if ($compiler instanceof AggregateCompiler) {
         $compilers = $compiler->getCompilers();
         foreach ($compilers as $compiler) {
             $contents .= parent::recompile($compiler);
         }
         $contents = '<?php ' . $contents;
         $bin = base64_encode($contents);
         file_put_contents($this->fileName, $bin);
     } else {
         parent::save($compiler);
     }
 }
Ejemplo n.º 2
0
 /**
  * Helper function to recompile class
  * @param \recompilr\Compiler\CompilerInterface $compiler
  * @return string
  */
 protected function recompile(CompilerInterface $compiler)
 {
     $classRegistry = $compiler->getClassRegistry();
     $maps = $classRegistry->getClassMapping();
     $contents = '';
     if (!empty($maps)) {
         foreach ($maps as $map) {
             if ($map->isMapped()) {
                 $compiled = $map->recompile();
                 if (!empty($compiled)) {
                     $contents .= $compiled;
                     $contents .= "\r\n";
                     $contents .= "\r\n";
                     $contents .= "\\recompilr\\map('" . $map->getClassName() . "','" . $map->getCurrentName() . "');";
                     $contents .= "\r\n";
                     $contents .= "\r\n";
                 }
             }
         }
     }
     $contents = str_replace('<?php', '', $contents);
     return $contents;
 }