public function __construct(AbstractModule $module, InjectorInterface $injector, ConfigInterface $config, LoggerInterface $logger = null)
 {
     $this->module = $module;
     $this->injector = $injector;
     $this->config = $config;
     $this->container = $injector->getContainer();
     $this->logger = $logger;
 }
 /**
  * @param InjectorInterface          $injector
  * @param AbstractCompilationLogger  $logger
  * @param Cache                      $cache
  * @param string                     $cacheKey
  */
 public function __construct(InjectorInterface $injector, AbstractCompilationLogger $logger, Cache $cache, $cacheKey)
 {
     $logger->setConfig($injector->getContainer()->getForge()->getConfig());
     $injector->setLogger($logger);
     $this->injector = $injector;
     $this->logger = $logger;
     $this->cache = $cache;
     $this->cacheKey = $cacheKey;
 }