/**
  * Inject a module into available configuration.
  *
  * @param string $package Package name
  * @param string $module Module to install in configuration
  * @param Injector\InjectorInterface $injector Injector to use.
  * @param int $packageType
  * @return void
  */
 private function injectModuleIntoConfig($package, $module, Injector\InjectorInterface $injector, $packageType)
 {
     $this->io->write(sprintf('<info>Installing %s from package %s</info>', $module, $package));
     $injector->inject($module, $packageType, $this->io);
 }
 /**
  * Cache an injector for later use.
  *
  * @param Injector\InjectorInterface $injector
  * @parram int[] $packageTypes
  * @return void
  */
 private function cacheInjector(Injector\InjectorInterface $injector)
 {
     foreach ($injector->getTypesAllowed() as $type) {
         if (isset($this->cachedInjectors[$type])) {
             continue;
         }
         $this->cachedInjectors[$type] = $injector;
     }
 }
 /**
  * Cache an injector for later use.
  *
  * @param Injector\InjectorInterface $injector
  * @return void
  */
 private function cacheInjector(Injector\InjectorInterface $injector)
 {
     Collection::create($injector->getTypesAllowed())->reject(function ($type) {
         return isset($this->cachedInjectors[$type]);
     })->each(function ($type) use($injector) {
         $this->cachedInjectors[$type] = $injector;
     });
 }