Exemplo n.º 1
0
    /**
     * Auto registers the "pbj-schema-store" repos with the SchemaStore.
     *
     * @param PackageEvent $event
     */
    public static function writePbjSchemaStoresFile(PackageEvent $event)
    {
        if (!$event->isDevMode()) {
            return;
        }
        $dirs = [];
        /** @var PackageInterface $package */
        foreach ($event->getInstalledRepo()->getPackages() as $package) {
            if (!$package instanceof PackageInterface) {
                continue;
            }
            if ('pbj-schema-store' !== $package->getType()) {
                continue;
            }
            $dir = sprintf('$vendorDir.\'/%s/schemas/\'', $package->getName());
            // override for current package
            if ($event->getComposer()->getPackage()->getName() == $package->getName()) {
                $dir = '__DIR__.\'/schemas/\'';
            }
            $dirs[] = sprintf('%s    %s', PHP_EOL, $dir);
        }
        if (empty($dirs)) {
            return;
        }
        $dirs = implode(',', $dirs);
        $event->getIO()->write('<info>Writing "pbj-schema-store" locations to "pbj-schema-stores.php"</info>');
        $text = <<<TEXT
<?php

/**
 * DO NOT EDIT THIS FILE as it will be overwritten by Composer as part of
 * the installation/update process.
 *
 * Registers all directories from all required packages which are of
 * of the type "pbj-schema-store".
 *
 * This file has been auto-generated by the Pbj Compiler.
 */

\$vendorDir = realpath(__DIR__.'/vendor');

\\Gdbots\\Pbjc\\SchemaStore::addDirs([{$dirs}
]);

TEXT;
        $fs = new Filesystem();
        $fs->dumpFile('pbj-schema-stores.php', $text);
    }
Exemplo n.º 2
0
 /**
  * Creates and returns a new PackageEvent with the given operation.
  *
  * @param PackageEvent $event
  * @param OperationInterface $operation
  * @return PackageEvent
  */
 private function createPackageEventWithOperation(PackageEvent $event, OperationInterface $operation)
 {
     return new PackageEvent($event->getName(), $this->composer, $this->io, $event->isDevMode(), $event->getPolicy(), $event->getPool(), $event->getInstalledRepo(), $event->getRequest(), $event->getOperations(), $operation);
 }
Exemplo n.º 3
0
 /**
  * @param PackageEvent $event
  */
 public function __construct(PackageEvent $event)
 {
     $this->aliasOf = $event;
     parent::__construct($event->getName(), $event->getComposer(), $event->getIO(), $event->isDevMode(), $event->getArguments(), $event->getFlags());
 }