class FilesystemLoader
Same name in other branches
- 9 core/lib/Drupal/Core/Template/Loader/FilesystemLoader.php \Drupal\Core\Template\Loader\FilesystemLoader
- 10 core/lib/Drupal/Core/Template/Loader/FilesystemLoader.php \Drupal\Core\Template\Loader\FilesystemLoader
- 11.x core/lib/Drupal/Core/Template/Loader/FilesystemLoader.php \Drupal\Core\Template\Loader\FilesystemLoader
Loads templates from the filesystem.
This loader adds module and theme template paths as namespaces to the Twig filesystem loader so that templates can be referenced by namespace, like @block/block.html.twig or @mytheme/page.html.twig.
Hierarchy
- class \Drupal\Core\Template\Loader\FilesystemLoader extends \Drupal\Core\Template\Loader\Twig_Loader_Filesystem
Expanded class hierarchy of FilesystemLoader
1 string reference to 'FilesystemLoader'
- core.services.yml in core/
core.services.yml - core/core.services.yml
1 service uses FilesystemLoader
File
-
core/
lib/ Drupal/ Core/ Template/ Loader/ FilesystemLoader.php, line 15
Namespace
Drupal\Core\Template\LoaderView source
class FilesystemLoader extends \Twig_Loader_Filesystem {
/**
* Constructs a new FilesystemLoader object.
*
* @param string|array $paths
* A path or an array of paths to check for templates.
* @param \Drupal\Core\Extension\ModuleHandlerInterface $module_handler
* The module handler service.
* @param \Drupal\Core\Extension\ThemeHandlerInterface $theme_handler
* The theme handler service.
*/
public function __construct($paths, ModuleHandlerInterface $module_handler, ThemeHandlerInterface $theme_handler) {
parent::__construct($paths);
// Add namespaced paths for modules and themes.
$namespaces = [];
foreach ($module_handler->getModuleList() as $name => $extension) {
$namespaces[$name] = $extension->getPath();
}
foreach ($theme_handler->listInfo() as $name => $extension) {
$namespaces[$name] = $extension->getPath();
}
foreach ($namespaces as $name => $path) {
$this->addPath($path . '/templates', $name);
}
}
/**
* Adds a path where templates are stored.
*
* @param string $path
* A path where to look for templates.
* @param string $namespace
* (optional) A path name.
*/
public function addPath($path, $namespace = self::MAIN_NAMESPACE) {
// Invalidate the cache.
$this->cache = [];
$this->paths[$namespace][] = rtrim($path, '/\\');
}
}
Members
Title Sort descending | Modifiers | Object type | Summary |
---|---|---|---|
FilesystemLoader::addPath | public | function | Adds a path where templates are stored. |
FilesystemLoader::__construct | public | function | Constructs a new FilesystemLoader object. |
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.