comparison core/lib/Drupal/Core/Asset/AttachedAssets.php @ 0:4c8ae668cc8c

Initial import (non-working)
author Chris Cannam
date Wed, 29 Nov 2017 16:09:58 +0000
parents
children
comparison
equal deleted inserted replaced
-1:000000000000 0:4c8ae668cc8c
1 <?php
2
3 namespace Drupal\Core\Asset;
4
5 /**
6 * The default attached assets collection.
7 */
8 class AttachedAssets implements AttachedAssetsInterface {
9
10 /**
11 * The (ordered) list of asset libraries attached to the current response.
12 *
13 * @var string[]
14 */
15 public $libraries = [];
16
17 /**
18 * The JavaScript settings attached to the current response.
19 *
20 * @var array
21 */
22 public $settings = [];
23
24 /**
25 * The set of asset libraries that the client has already loaded.
26 *
27 * @var string[]
28 */
29 protected $alreadyLoadedLibraries = [];
30
31 /**
32 * {@inheritdoc}
33 */
34 public static function createFromRenderArray(array $render_array) {
35 if (!isset($render_array['#attached'])) {
36 throw new \LogicException('The render array has not yet been rendered, hence not all attachments have been collected yet.');
37 }
38
39 $assets = new static();
40 if (isset($render_array['#attached']['library'])) {
41 $assets->setLibraries($render_array['#attached']['library']);
42 }
43 if (isset($render_array['#attached']['drupalSettings'])) {
44 $assets->setSettings($render_array['#attached']['drupalSettings']);
45 }
46 return $assets;
47 }
48
49 /**
50 * {@inheritdoc}
51 */
52 public function setLibraries(array $libraries) {
53 $this->libraries = array_unique($libraries);
54 return $this;
55 }
56
57 /**
58 * {@inheritdoc}
59 */
60 public function getLibraries() {
61 return $this->libraries;
62 }
63
64 /**
65 * {@inheritdoc}
66 */
67 public function setSettings(array $settings) {
68 $this->settings = $settings;
69 return $this;
70 }
71
72 /**
73 * {@inheritdoc}
74 */
75 public function getSettings() {
76 return $this->settings;
77 }
78
79 /**
80 * {@inheritdoc}
81 */
82 public function getAlreadyLoadedLibraries() {
83 return $this->alreadyLoadedLibraries;
84 }
85
86 /**
87 * {@inheritdoc}
88 */
89 public function setAlreadyLoadedLibraries(array $libraries) {
90 $this->alreadyLoadedLibraries = $libraries;
91 return $this;
92 }
93
94 }