1 | <?php |
||
27 | class AssetEngineSubscriber implements EventSubscriberInterface |
||
28 | { |
||
29 | private $assetEngineManager; |
||
30 | private $assetPageViews; |
||
31 | private $logger; |
||
32 | |||
33 | 7 | public function __construct(AssetEngineManager $assetEngineManager, LoggerInterface $logger) |
|
39 | |||
40 | 7 | public function processConfigurationSettings(ConfigurationParseComplete $event) |
|
53 | |||
54 | 1 | public function processAssetEnginePageView(PageManagerPostProcess $event) |
|
55 | { |
||
56 | /** |
||
57 | * @var string $folder |
||
58 | * @var AssetEngineInterface $engine |
||
59 | */ |
||
60 | 1 | foreach ($this->assetEngineManager->getFoldersToWatch() as $folder => $engine) |
|
61 | { |
||
62 | 1 | $assetFolder = fs::absolutePath($folder); |
|
|
|||
63 | |||
64 | 1 | if (!fs::exists($assetFolder)) |
|
65 | { |
||
66 | continue; |
||
67 | } |
||
68 | |||
69 | 1 | $engine->setPageManager($event->getPageManager()); |
|
70 | 1 | $extensions = []; |
|
71 | |||
72 | 1 | foreach ($engine->getExtensions() as $extension) |
|
73 | { |
||
74 | 1 | $extensions[] = "/.{$extension}.twig$/"; |
|
75 | } |
||
76 | |||
77 | 1 | $explorer = FileExplorer::create($assetFolder, [], $extensions, FileExplorer::INCLUDE_ONLY_FILES | FileExplorer::IGNORE_DIRECTORIES); |
|
78 | |||
79 | 1 | foreach ($explorer as $file) |
|
80 | { |
||
81 | 1 | $assetPageView = new StaticPageView($file); |
|
82 | |||
83 | try |
||
84 | { |
||
85 | 1 | $event->getPageManager()->trackNewPageView($assetPageView); |
|
86 | 1 | $this->assetPageViews[$assetPageView->getRelativeFilePath()] = [ |
|
87 | 1 | 'engine' => $engine, |
|
88 | ]; |
||
89 | } |
||
90 | catch (\Exception $e) |
||
91 | { |
||
92 | $this->logger->error('An exception occurred while creating a Static PageView for an AssetEngine'); |
||
93 | $this->logger->error(' {message}', [ |
||
94 | 'message' => $e->getMessage(), |
||
95 | ]); |
||
96 | } |
||
97 | } |
||
98 | } |
||
99 | 1 | } |
|
100 | |||
101 | 1 | public function compileAssetEnginePageViews(CompilerPostRenderStaticPageView $event) |
|
125 | |||
126 | public static function getSubscribedEvents() |
||
134 | |||
135 | 1 | private function buildCacheFolder(AssetEngineInterface $engine) |
|
150 | } |
||
151 |
It seems like the type of the argument is not accepted by the function/method which you are calling.
In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.
We suggest to add an explicit type cast like in the following example: