Mercurial > hg > isophonics-drupal-site
comparison core/lib/Drupal/Core/Asset/LibraryDiscovery.php @ 0:4c8ae668cc8c
Initial import (non-working)
author | Chris Cannam |
---|---|
date | Wed, 29 Nov 2017 16:09:58 +0000 |
parents | |
children | 129ea1e6d783 |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:4c8ae668cc8c |
---|---|
1 <?php | |
2 | |
3 namespace Drupal\Core\Asset; | |
4 | |
5 use Drupal\Core\Cache\CacheCollectorInterface; | |
6 | |
7 /** | |
8 * Discovers available asset libraries in Drupal. | |
9 */ | |
10 class LibraryDiscovery implements LibraryDiscoveryInterface { | |
11 | |
12 /** | |
13 * The library discovery cache collector. | |
14 * | |
15 * @var \Drupal\Core\Cache\CacheCollectorInterface | |
16 */ | |
17 protected $collector; | |
18 | |
19 /** | |
20 * The final library definitions, statically cached. | |
21 * | |
22 * hook_library_info_alter() and hook_js_settings_alter() allows modules | |
23 * and themes to dynamically alter a library definition (once per request). | |
24 * | |
25 * @var array | |
26 */ | |
27 protected $libraryDefinitions = []; | |
28 | |
29 /** | |
30 * Constructs a new LibraryDiscovery instance. | |
31 * | |
32 * @param \Drupal\Core\Cache\CacheCollectorInterface $library_discovery_collector | |
33 * The library discovery cache collector. | |
34 */ | |
35 public function __construct(CacheCollectorInterface $library_discovery_collector) { | |
36 $this->collector = $library_discovery_collector; | |
37 } | |
38 | |
39 /** | |
40 * {@inheritdoc} | |
41 */ | |
42 public function getLibrariesByExtension($extension) { | |
43 if (!isset($this->libraryDefinitions[$extension])) { | |
44 $libraries = $this->collector->get($extension); | |
45 $this->libraryDefinitions[$extension] = []; | |
46 foreach ($libraries as $name => $definition) { | |
47 $this->libraryDefinitions[$extension][$name] = $definition; | |
48 } | |
49 } | |
50 | |
51 return $this->libraryDefinitions[$extension]; | |
52 } | |
53 | |
54 /** | |
55 * {@inheritdoc} | |
56 */ | |
57 public function getLibraryByName($extension, $name) { | |
58 $extension = $this->getLibrariesByExtension($extension); | |
59 return isset($extension[$name]) ? $extension[$name] : FALSE; | |
60 } | |
61 | |
62 /** | |
63 * {@inheritdoc} | |
64 */ | |
65 public function clearCachedDefinitions() { | |
66 $this->libraryDefinitions = []; | |
67 $this->collector->clear(); | |
68 } | |
69 | |
70 } |