Exemple #1
0
 /**
  * Initializes a package template in the provided directory.
  *
  * @throws InvalidPathException
  *
  * @param $vendor
  * @param $package
  * @param $directory
  */
 public function initialize($vendor, $package, $directory)
 {
     if (!$this->files->exists($directory) || !$this->files->isDirectory($directory)) {
         throw new InvalidPathException("{$directory} does not exist or is not a valid directory.");
     }
     $packageComposer = new Package();
     $packageComposer->setVendor($vendor);
     $packageComposer->setPackage($package);
     $packageComposer->setDescription('Give your package template a good description');
     $packageComposer->setLicense(user_config('configuration.license', ''));
     $packageComposer->setAuthors(user_config('configuration.authors', []));
     $writer = new ConfigurationWriter($packageComposer->toArray());
     $writer['config'] = (object) ['vendor-dir' => '_newup_vendor'];
     $writer->save($directory . '/composer.json');
     $this->renderer->setData('package', $package);
     $this->renderer->setData('vendor', $vendor);
     $packageClass = $this->renderer->render('template');
     if (!$this->files->exists($directory . '/_newup/')) {
         $this->files->makeDirectory($directory . '/_newup/');
     }
     if ($this->shouldCreateTemplateDirectory && $this->files->exists($directory . '/_template') == false) {
         $this->files->makeDirectory($directory . '/_template');
     }
     $this->files->put($directory . '/_newup/Package.php', $packageClass);
 }
Exemple #2
0
 /**
  * Returns a new package instance from the provided array.
  *
  * @param array $array
  * @param bool  $strict
  *
  * @return PackageContract
  * @throws \InvalidArgumentException
  */
 public static function fromArray(array $array, $strict = true)
 {
     $details = (object) $array;
     $packageNameDetails = self::parseVendorAndPackage(object_get($details, 'name', null));
     $description = object_get($details, 'description', null);
     $license = object_get($details, 'license', null);
     $authors = object_get($details, 'authors', null);
     // Throw exceptions if the developer wants us to be super strict.
     if ($strict) {
         self::throwInvalidArgumentException($description, 'Invalid package description.');
         self::throwInvalidArgumentException($license, 'Invalid package license.');
         self::throwInvalidArgumentException($authors, 'Invalid package authors.');
     }
     $package = new Package();
     $package->setAuthors($authors);
     $package->setDescription($description);
     $package->setLicense($license);
     $package->setVendor($packageNameDetails[0]);
     $package->setPackage($packageNameDetails[1]);
     return $package;
 }