function FieldDefinitionIntegrityTest::modulesWithSubdirectory
Find modules with a specified subdirectory.
Parameters
string $subdirectory: The required path, relative to the module directory.
Return value
string[] A list of module names satisfying these criteria:
- provided by core
 - not hidden
 - not already enabled
 - not in the Testing package
 - containing the required $subdirectory
 
and all modules required by any of these modules.
2 calls to FieldDefinitionIntegrityTest::modulesWithSubdirectory()
- FieldDefinitionIntegrityTest::testFieldPluginDefinitionAvailability in core/
modules/ field/ tests/ src/ Kernel/ FieldDefinitionIntegrityTest.php  - Tests to load field plugin definitions used in core's existing entities.
 - FieldDefinitionIntegrityTest::testFieldPluginDefinitionIntegrity in core/
modules/ field/ tests/ src/ Kernel/ FieldDefinitionIntegrityTest.php  - Tests the integrity of field plugin definitions.
 
File
- 
              core/
modules/ field/ tests/ src/ Kernel/ FieldDefinitionIntegrityTest.php, line 174  
Class
- FieldDefinitionIntegrityTest
 - Tests the integrity of field API plugin definitions.
 
Namespace
Drupal\Tests\field\KernelCode
protected function modulesWithSubdirectory($subdirectory) {
  $modules = \Drupal::service('extension.list.module')->getList();
  $modules = array_filter($modules, function (Extension $module) use ($subdirectory) {
    // Filter contrib, hidden, already enabled modules and modules in the
    // Testing package.
    return $module->origin === 'core' && empty($module->info['hidden']) && $module->status == FALSE && $module->info['package'] !== 'Testing' && is_readable($module->getPath() . DIRECTORY_SEPARATOR . $subdirectory);
  });
  // Gather the dependencies of the modules.
  $dependencies = NestedArray::mergeDeepArray(array_map(function (Extension $module) {
    return array_keys($module->requires);
  }, $modules));
  return array_unique(NestedArray::mergeDeep(array_keys($modules), $dependencies));
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.