示例#1
0
 /**
  * {@inheritdoc}
  */
 public function process(array $classes, array $data)
 {
     $files = [];
     $namespace = $data['defaults']['namespace'];
     foreach ($classes as $class) {
         /** @var \Classiphpy\Definition\DefinitionInterface $class */
         if (!strpos($class->getNamespace(), $namespace) === 0) {
             throw new \Exception(sprintf('The %s namespace is not within the %s class', $namespace, $class->getNamespace()));
         }
         $file = new File($class->getName(), 'php', $this->getDirectory($class, $namespace));
         $file->setContents((string) $class);
         $files[$class->getNamespace() . '\\' . $class->getName()] = $file;
     }
     return $files;
 }
 /**
  * {@inheritdoc}
  */
 public function process(array $classes, array $data)
 {
     $file = new File('composer', 'json', '');
     /** @var \Classiphpy\Definition\DefinitionInterface $class */
     $dependencies = [];
     foreach ($classes as $class) {
         $dependencies += $class->getDependencies();
     }
     $composer = ['name' => $this->name, 'license' => $this->license];
     if ($dependencies) {
         $composer['require'] = $dependencies;
     }
     $file->setContents(json_encode($composer, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES));
     $files = $this->processor->process($classes, $data);
     $files['composer'] = $file;
     return $files;
 }