Exemplo n.º 1
0
 /**
  * {@inheritdoc}
  */
 public function getAllModules()
 {
     static $modules;
     if (!isset($modules)) {
         // ModuleHandler::getModuleDirectories() returns data only for installed
         // modules. system_rebuild_module_data() includes only the site's install
         // profile directory, while we may need to include a custom profile.
         // @see _system_rebuild_module_data().
         $listing = new ExtensionDiscovery($this->root);
         $profile_directories = $listing->setProfileDirectoriesFromSettings()->getProfileDirectories();
         $installed_profile = $this->drupalGetProfile();
         if (isset($bundle) && $bundle->isProfile()) {
             $profile_directory = 'profiles/' . $bundle->getProfileName();
             if ($bundle->getProfileName() != $installed_profile && is_dir($profile_directory)) {
                 $profile_directories[] = $profile_directory;
             }
         }
         $listing->setProfileDirectories($profile_directories);
         // Find modules.
         $modules = $listing->scan('module');
         // Find installation profiles.
         $profiles = $listing->scan('profile');
         foreach ($profiles as $key => $profile) {
             $modules[$key] = $profile;
         }
     }
     return $modules;
 }