original_string: private function loadModule(
  		$moduleClass,
  		array &$modules,
  		array $moduleList,
  		DependencyInjectionContainer $dic) {
  		/**
  		 * @var Module $module
  		 */
  		$module = $dic->make($moduleClass);
  
  		if (!$module instanceof Module) {
  			throw new ConfigurationException(get_class($module) .
  				' was configured as a module, but doesn\'t implement ' . Module::class);
  		}
  
  		if (!\in_array($module, $modules)) {
  			$dic->share($module);
  
  			$this->loadRequiredModules($module, $modules, $moduleList, $dic);
  
  			$modules[] = $module;
  		}
  	}
code: private function loadModule(
  		$moduleClass,
  		array &$modules,
  		array $moduleList,
  		DependencyInjectionContainer $dic) {
  		/**
  		 * @var Module $module
  		 */
  		$module = $dic->make($moduleClass);
  
  		if (!$module instanceof Module) {
  			throw new ConfigurationException(get_class($module) .
  				' was configured as a module, but doesn\'t implement ' . Module::class);
  		}
  
  		if (!\in_array($module, $modules)) {
  			$dic->share($module);
  
  			$this->loadRequiredModules($module, $modules, $moduleList, $dic);
  
  			$modules[] = $module;
  		}
  	}
code_tokens: private function loadModule ( $ moduleClass , array & $ modules , array $ moduleList , DependencyInjectionContainer $ dic ) { /**
  		 * @var Module $module
  		 */ $ module = $ dic -> make ( $ moduleClass ) ; if ( ! $ module instanceof Module ) { throw new ConfigurationException ( get_class ( $ module ) . ' was configured as a module, but doesn\'t implement ' . Module :: class ) ; } if ( ! \ in_array ( $ module , $ modules ) ) { $ dic -> share ( $ module ) ; $ this -> loadRequiredModules ( $ module , $ modules , $ moduleList , $ dic ) ; $ modules [ ] = $ module ; } }
docstring: Load a module by class name.
  
  @param string                       $moduleClass The module class to load.
  @param Module[]                     $modules     The list of already loaded modules.
  @param array                        $moduleList  The complete module list.
  @param DependencyInjectionContainer $dic         The dependency injection container to use for the module.
  
  @return void
  
  @throws ConfigurationException
docstring_tokens: Load a module by class name .