/** * {@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; }