original_string: private function loadRequiredModules(
  		Module $module,
  		&$modules,
  		array $moduleList,
  		DependencyInjectionContainer $dic) {
  		foreach ($module->getRequiredModules() as $requiredModule) {
  			if (!\in_array($requiredModule, $moduleList)) {
  				$this->loadModule($requiredModule, $modules, $moduleList, $dic);
  				if ($module instanceof RequiredModuleAwareModule) {
  					$module->addRequiredModule($dic->make($requiredModule));
  				}
  			}
  		}
  	}
code: private function loadRequiredModules(
  		Module $module,
  		&$modules,
  		array $moduleList,
  		DependencyInjectionContainer $dic) {
  		foreach ($module->getRequiredModules() as $requiredModule) {
  			if (!\in_array($requiredModule, $moduleList)) {
  				$this->loadModule($requiredModule, $modules, $moduleList, $dic);
  				if ($module instanceof RequiredModuleAwareModule) {
  					$module->addRequiredModule($dic->make($requiredModule));
  				}
  			}
  		}
  	}
code_tokens: private function loadRequiredModules ( Module $ module , & $ modules , array $ moduleList , DependencyInjectionContainer $ dic ) { foreach ( $ module -> getRequiredModules ( ) as $ requiredModule ) { if ( ! \ in_array ( $ requiredModule , $ moduleList ) ) { $ this -> loadModule ( $ requiredModule , $ modules , $ moduleList , $ dic ) ; if ( $ module instanceof RequiredModuleAwareModule ) { $ module -> addRequiredModule ( $ dic -> make ( $ requiredModule ) ) ; } } } }
docstring: Load the modules a certain module requires.
  
  @param Module                       $module
  @param Module[]                     $modules
  @param array                        $moduleList
  @param DependencyInjectionContainer $dic
docstring_tokens: Load the modules a certain module requires .