@@ -225,7 +225,7 @@ discard block |
||
225 | 225 | // Mock Objects |
226 | 226 | // |
227 | 227 | |
228 | - protected function getMockAssetEngineManager(): MockBuilder|AssetEngineManager |
|
228 | + protected function getMockAssetEngineManager(): MockBuilder | AssetEngineManager |
|
229 | 229 | { |
230 | 230 | return new AssetEngineManager(); |
231 | 231 | } |
@@ -235,7 +235,7 @@ discard block |
||
235 | 235 | return new AssetManager($this->getMockEventDispatcher(), $this->getMockLogger()); |
236 | 236 | } |
237 | 237 | |
238 | - protected function getMockConfiguration(): MockObject|Configuration |
|
238 | + protected function getMockConfiguration(): MockObject | Configuration |
|
239 | 239 | { |
240 | 240 | $stub = $this->getMockBuilder(Configuration::class) |
241 | 241 | ->disableOriginalConstructor() |
@@ -248,7 +248,7 @@ discard block |
||
248 | 248 | return $stub; |
249 | 249 | } |
250 | 250 | |
251 | - protected function getMockPageManager(): PageManager|MockObject |
|
251 | + protected function getMockPageManager(): PageManager | MockObject |
|
252 | 252 | { |
253 | 253 | $stub = $this->getMockBuilder(PageManager::class) |
254 | 254 | ->disableOriginalConstructor() |
@@ -260,7 +260,7 @@ discard block |
||
260 | 260 | return $stub; |
261 | 261 | } |
262 | 262 | |
263 | - protected function getMockMenuManager(): MockObject|MenuManager |
|
263 | + protected function getMockMenuManager(): MockObject | MenuManager |
|
264 | 264 | { |
265 | 265 | $stub = $this->getMockBuilder(MenuManager::class) |
266 | 266 | ->disableOriginalConstructor() |
@@ -272,7 +272,7 @@ discard block |
||
272 | 272 | return $stub; |
273 | 273 | } |
274 | 274 | |
275 | - protected function getMockCollectionManager(): MockObject|CollectionManager |
|
275 | + protected function getMockCollectionManager(): MockObject | CollectionManager |
|
276 | 276 | { |
277 | 277 | $stub = $this->getMockBuilder(CollectionManager::class) |
278 | 278 | ->disableOriginalConstructor() |
@@ -284,7 +284,7 @@ discard block |
||
284 | 284 | return $stub; |
285 | 285 | } |
286 | 286 | |
287 | - protected function getMockDataManager(): MockObject|DataManager |
|
287 | + protected function getMockDataManager(): MockObject | DataManager |
|
288 | 288 | { |
289 | 289 | $stub = $this->getMockBuilder(DataManager::class) |
290 | 290 | ->disableOriginalConstructor() |
@@ -327,7 +327,7 @@ discard block |
||
327 | 327 | return $markupEngine; |
328 | 328 | } |
329 | 329 | |
330 | - protected function getMockRedirectMapper(): RedirectMapper|MockObject |
|
330 | + protected function getMockRedirectMapper(): RedirectMapper | MockObject |
|
331 | 331 | { |
332 | 332 | $stub = $this->getMockBuilder(RedirectMapper::class) |
333 | 333 | ->getMock() |
@@ -341,7 +341,7 @@ discard block |
||
341 | 341 | /** |
342 | 342 | * Get a mock EventDispatcher. |
343 | 343 | */ |
344 | - protected function getMockEventDispatcher(): MockObject|EventDispatcherInterface |
|
344 | + protected function getMockEventDispatcher(): MockObject | EventDispatcherInterface |
|
345 | 345 | { |
346 | 346 | return $this->getMockBuilder(EventDispatcherInterface::class)->getMock(); |
347 | 347 | } |
@@ -349,7 +349,7 @@ discard block |
||
349 | 349 | /** |
350 | 350 | * Get a mock logger. |
351 | 351 | */ |
352 | - protected function getMockLogger(): MockObject|LoggerInterface |
|
352 | + protected function getMockLogger(): MockObject | LoggerInterface |
|
353 | 353 | { |
354 | 354 | return $this->getMockBuilder(LoggerInterface::class)->getMock(); |
355 | 355 | } |
@@ -72,7 +72,8 @@ discard block |
||
72 | 72 | |
73 | 73 | public function tearDown(): void |
74 | 74 | { |
75 | - if ($this->assetFolder !== null) { |
|
75 | + if ($this->assetFolder !== null) |
|
76 | + { |
|
76 | 77 | fs::remove($this->assetFolder); |
77 | 78 | } |
78 | 79 | } |
@@ -167,7 +168,8 @@ discard block |
||
167 | 168 | { |
168 | 169 | $body = $this->buildFrontMatterTemplate($frontMatter, $content); |
169 | 170 | |
170 | - if (!$filename) { |
|
171 | + if (!$filename) |
|
172 | + { |
|
171 | 173 | $filename = hash('sha256', (string)random_int(0, mt_getrandmax())); |
172 | 174 | } |
173 | 175 | |
@@ -194,7 +196,8 @@ discard block |
||
194 | 196 | { |
195 | 197 | $results = []; |
196 | 198 | |
197 | - foreach ($elements as $element) { |
|
199 | + foreach ($elements as $element) |
|
200 | + { |
|
198 | 201 | $filename = $element['filename'] ?? null; |
199 | 202 | $frontMatter = (!isset($element['frontmatter']) || empty($element['frontmatter'])) ? [] : $element['frontmatter']; |
200 | 203 | $body = $element['body'] ?? 'Body Text'; |
@@ -405,7 +408,8 @@ discard block |
||
405 | 408 | ->value() |
406 | 409 | ; |
407 | 410 | |
408 | - if ($fxnToCall === null) { |
|
411 | + if ($fxnToCall === null) |
|
412 | + { |
|
409 | 413 | throw new BadFunctionCallException(sprintf('No function by the name of "%s" in this class', $method)); |
410 | 414 | } |
411 | 415 | |
@@ -413,10 +417,14 @@ discard block |
||
413 | 417 | $callUserFuncArray = []; |
414 | 418 | |
415 | 419 | /** @var ReflectionParameter $argument */ |
416 | - foreach ($arguments as $argument) { |
|
417 | - if (isset($namedParams[$argument->getName()])) { |
|
420 | + foreach ($arguments as $argument) |
|
421 | + { |
|
422 | + if (isset($namedParams[$argument->getName()])) |
|
423 | + { |
|
418 | 424 | $callUserFuncArray[] = $namedParams[$argument->getName()]; |
419 | - } else { |
|
425 | + } |
|
426 | + else |
|
427 | + { |
|
420 | 428 | $callUserFuncArray[] = $argument->getDefaultValue(); |
421 | 429 | } |
422 | 430 | } |
@@ -84,7 +84,8 @@ discard block |
||
84 | 84 | $this->handleThemeImports($content); |
85 | 85 | |
86 | 86 | // We don't need to write the source map to a file |
87 | - if (!$this->fileSourceMap) { |
|
87 | + if (!$this->fileSourceMap) |
|
88 | + { |
|
88 | 89 | $this->compiler->setSourceMapOptions($sourceMapOptions); |
89 | 90 | |
90 | 91 | return $this->compiler->compile($content); |
@@ -138,13 +139,16 @@ discard block |
||
138 | 139 | |
139 | 140 | public static function stringToFormatter($format) |
140 | 141 | { |
141 | - if ($format === 'nested') { |
|
142 | + if ($format === 'nested') |
|
143 | + { |
|
142 | 144 | return Nested::class; |
143 | 145 | } |
144 | - if ($format === 'expanded') { |
|
146 | + if ($format === 'expanded') |
|
147 | + { |
|
145 | 148 | return Expanded::class; |
146 | 149 | } |
147 | - if ($format === 'compact') { |
|
150 | + if ($format === 'compact') |
|
151 | + { |
|
148 | 152 | return Compact::class; |
149 | 153 | } |
150 | 154 | |
@@ -167,12 +171,17 @@ discard block |
||
167 | 171 | { |
168 | 172 | $sourceMap = __::get($this->options, 'sourcemap'); |
169 | 173 | |
170 | - if ($sourceMap === 'inline') { |
|
174 | + if ($sourceMap === 'inline') |
|
175 | + { |
|
171 | 176 | $this->compiler->setSourceMap(Compiler::SOURCE_MAP_INLINE); |
172 | - } elseif ($sourceMap === true) { |
|
177 | + } |
|
178 | + elseif ($sourceMap === true) |
|
179 | + { |
|
173 | 180 | $this->compiler->setSourceMap(Compiler::SOURCE_MAP_FILE); |
174 | 181 | $this->fileSourceMap = true; |
175 | - } else { |
|
182 | + } |
|
183 | + else |
|
184 | + { |
|
176 | 185 | $this->compiler->setSourceMap(Compiler::SOURCE_MAP_NONE); |
177 | 186 | } |
178 | 187 | } |
@@ -187,14 +196,16 @@ discard block |
||
187 | 196 | |
188 | 197 | private function initializeCompiler(): void |
189 | 198 | { |
190 | - if ($this->compiler) { |
|
199 | + if ($this->compiler) |
|
200 | + { |
|
191 | 201 | return; |
192 | 202 | } |
193 | 203 | |
194 | 204 | $cacheOptions = []; |
195 | 205 | |
196 | 206 | // If we have a cache directory set, use it. |
197 | - if ($this->cacheDirectory) { |
|
207 | + if ($this->cacheDirectory) |
|
208 | + { |
|
198 | 209 | $cacheOptions = [ |
199 | 210 | 'cacheDir' => (string)$this->cacheDirectory->getFilesystemPath(), |
200 | 211 | 'forceRefresh' => false, |
@@ -210,7 +221,8 @@ discard block |
||
210 | 221 | |
211 | 222 | private function handleThemeImports(&$content): void |
212 | 223 | { |
213 | - if ($themeName = $this->configuration->getTheme()) { |
|
224 | + if ($themeName = $this->configuration->getTheme()) |
|
225 | + { |
|
214 | 226 | $themePath = "../_themes/{$themeName}/_sass"; |
215 | 227 | $content = preg_replace("/(@import ['\"])(@theme)(.+)/", "$1{$themePath}$3", $content); |
216 | 228 | } |
@@ -46,11 +46,13 @@ |
||
46 | 46 | */ |
47 | 47 | public function registerPageView(BasePageView $pageView): void |
48 | 48 | { |
49 | - switch ($pageView->getType()) { |
|
49 | + switch ($pageView->getType()) |
|
50 | + { |
|
50 | 51 | case BasePageView::STATIC_TYPE: |
51 | 52 | $this->mapping[$pageView->getPermalink()] = $pageView; |
52 | 53 | |
53 | - foreach ($pageView->getRedirects() as $redirect) { |
|
54 | + foreach ($pageView->getRedirects() as $redirect) |
|
55 | + { |
|
54 | 56 | $this->redirects[$redirect] = $pageView->getPermalink(); |
55 | 57 | } |
56 | 58 |
@@ -20,7 +20,8 @@ |
||
20 | 20 | $source = fs::getInternalResource('error.html.twig'); |
21 | 21 | $template = $compiler->getTemplateBridge()->createTemplate($source); |
22 | 22 | |
23 | - if ($exception instanceof TemplateErrorInterface) { |
|
23 | + if ($exception instanceof TemplateErrorInterface) |
|
24 | + { |
|
24 | 25 | $message = [ |
25 | 26 | sprintf('File: %s:%d', $exception->getRelativeFilePath(), $exception->getTemplateLine()), |
26 | 27 | ]; |
@@ -51,29 +51,36 @@ discard block |
||
51 | 51 | { |
52 | 52 | $routes = Controller::create($routeMapper, $compiler); |
53 | 53 | |
54 | - return new Server(function (ServerRequestInterface $request) use ($routes, $compiler, $assetManager) { |
|
54 | + return new Server(function (ServerRequestInterface $request) use ($routes, $compiler, $assetManager) |
|
55 | + { |
|
55 | 56 | $httpMethod = $request->getMethod(); |
56 | 57 | $urlPath = Controller::normalizeUrl($request->getUri()->getPath()); |
57 | 58 | |
58 | 59 | // We're a static website, we should never support anything other than GET requests |
59 | - if ($httpMethod !== 'GET') { |
|
60 | + if ($httpMethod !== 'GET') |
|
61 | + { |
|
60 | 62 | return new Response(406, ['Content-Type' => 'text/plain'], 'Method not allowed'); |
61 | 63 | } |
62 | 64 | |
63 | 65 | $context = new RequestContext($urlPath); |
64 | 66 | $matcher = new UrlMatcher($routes, $context); |
65 | 67 | |
66 | - try { |
|
68 | + try |
|
69 | + { |
|
67 | 70 | $parameters = $matcher->match($urlPath); |
68 | 71 | |
69 | - if (isset($parameters['_controller'])) { |
|
72 | + if (isset($parameters['_controller'])) |
|
73 | + { |
|
70 | 74 | $controller = $parameters['_controller']; |
71 | 75 | |
72 | 76 | return $controller($request, ...array_values($parameters)); |
73 | 77 | } |
74 | - } catch (ResourceNotFoundException $e) { |
|
78 | + } |
|
79 | + catch (ResourceNotFoundException $e) |
|
80 | + { |
|
75 | 81 | // If we have a "manual" asset, let's serve from it |
76 | - if (($file = $assetManager->getExplicitAsset(self::normalizePath($urlPath))) !== null) { |
|
82 | + if (($file = $assetManager->getExplicitAsset(self::normalizePath($urlPath))) !== null) |
|
83 | + { |
|
77 | 84 | return self::makeResponse($file); |
78 | 85 | } |
79 | 86 | |
@@ -82,10 +89,13 @@ discard block |
||
82 | 89 | // reason, we manually look through the filesystem and load from there. |
83 | 90 | // |
84 | 91 | // @TODO this should be fixed to make the AssetManager the authority on assets. |
85 | - if (($asset = self::searchAsset($urlPath)) !== null) { |
|
92 | + if (($asset = self::searchAsset($urlPath)) !== null) |
|
93 | + { |
|
86 | 94 | return $asset; |
87 | 95 | } |
88 | - } catch (Exception $e) { |
|
96 | + } |
|
97 | + catch (Exception $e) |
|
98 | + { |
|
89 | 99 | $response = ExceptionRenderer::render($e, $compiler); |
90 | 100 | |
91 | 101 | return new Response(500, ['Content-Type' => 'text/html'], $response); |
@@ -103,12 +113,16 @@ discard block |
||
103 | 113 | */ |
104 | 114 | private static function searchAsset($url, $continueNesting = true): ?Response |
105 | 115 | { |
106 | - try { |
|
116 | + try |
|
117 | + { |
|
107 | 118 | $file = new File(self::normalizePath($url)); |
108 | 119 | |
109 | 120 | return self::makeResponse($file); |
110 | - } catch (FileNotFoundException) { |
|
111 | - if (!$continueNesting) { |
|
121 | + } |
|
122 | + catch (FileNotFoundException) |
|
123 | + { |
|
124 | + if (!$continueNesting) |
|
125 | + { |
|
112 | 126 | // This will evaluate to true if we've searched inside the themes folder and it still doesn't exist |
113 | 127 | return null; |
114 | 128 | } |
@@ -183,7 +183,7 @@ |
||
183 | 183 | /** |
184 | 184 | * Return the appropriate action based on a PageView's type. |
185 | 185 | */ |
186 | - private function createAction(BasePageView|DynamicPageView|RepeaterPageView|StaticPageView $pageView, Compiler $compiler): Closure |
|
186 | + private function createAction(BasePageView | DynamicPageView | RepeaterPageView | StaticPageView $pageView, Compiler $compiler): Closure |
|
187 | 187 | { |
188 | 188 | return match ($pageView->getType()) { |
189 | 189 | BasePageView::STATIC_TYPE => $this->staticPageViewAction($pageView, $compiler), |
@@ -51,7 +51,8 @@ discard block |
||
51 | 51 | * @var string $from |
52 | 52 | * @var string $to |
53 | 53 | */ |
54 | - foreach ($routeMapper->getRedirectMapping() as $from => $to) { |
|
54 | + foreach ($routeMapper->getRedirectMapping() as $from => $to) |
|
55 | + { |
|
55 | 56 | $routeName = preg_replace('/[\/\.]/', '_', $from); |
56 | 57 | $routeName = 'redirect_' . $routeName; |
57 | 58 | |
@@ -64,7 +65,8 @@ discard block |
||
64 | 65 | * @var string $routeUrl |
65 | 66 | * @var BasePageView $pageView |
66 | 67 | */ |
67 | - foreach ($routeMapper->getRouteMapping() as $routeUrl => $pageView) { |
|
68 | + foreach ($routeMapper->getRouteMapping() as $routeUrl => $pageView) |
|
69 | + { |
|
68 | 70 | $routeName = $pageView->getRelativeFilePath(); |
69 | 71 | $routeName = preg_replace('/[\/\.]/', '_', $routeName); |
70 | 72 | |
@@ -75,7 +77,8 @@ discard block |
||
75 | 77 | // Allow the last route parameter to have `/` in the permalink that's not part of the route itself |
76 | 78 | // see https://github.com/stakx-io/stakx/issues/98 |
77 | 79 | $requirements = []; |
78 | - if (count($results) >= 2) { |
|
80 | + if (count($results) >= 2) |
|
81 | + { |
|
79 | 82 | $requirements[$results[1]] = '.*'; |
80 | 83 | } |
81 | 84 | |
@@ -109,12 +112,14 @@ discard block |
||
109 | 112 | */ |
110 | 113 | private function staticPageViewAction(StaticPageView $pageView, Compiler $compiler): Closure |
111 | 114 | { |
112 | - return function () use ($pageView, $compiler) { |
|
115 | + return function () use ($pageView, $compiler) |
|
116 | + { |
|
113 | 117 | Service::setOption('currentTemplate', $pageView->getAbsoluteFilePath()); |
114 | 118 | |
115 | 119 | $compiler->getTemplateBridge()->clearTemplateCache(); |
116 | 120 | |
117 | - if ($this->hasBeenTouched($pageView)) { |
|
121 | + if ($this->hasBeenTouched($pageView)) |
|
122 | + { |
|
118 | 123 | $pageView->readContent(); |
119 | 124 | } |
120 | 125 | |
@@ -133,22 +138,26 @@ discard block |
||
133 | 138 | */ |
134 | 139 | private function dynamicPageViewAction(DynamicPageView $pageView, Compiler $compiler): Closure |
135 | 140 | { |
136 | - return function (ServerRequestInterface $request) use ($pageView, $compiler) { |
|
141 | + return function (ServerRequestInterface $request) use ($pageView, $compiler) |
|
142 | + { |
|
137 | 143 | Service::setOption('currentTemplate', $pageView->getAbsoluteFilePath()); |
138 | 144 | |
139 | 145 | $compiler->getTemplateBridge()->clearTemplateCache(); |
140 | 146 | |
141 | 147 | $contentItem = self::getContentItem($pageView, $request->getUri()->getPath()); |
142 | 148 | |
143 | - if ($contentItem === null) { |
|
149 | + if ($contentItem === null) |
|
150 | + { |
|
144 | 151 | return WebServer::return404(); |
145 | 152 | } |
146 | 153 | |
147 | - if ($this->hasBeenTouched($pageView)) { |
|
154 | + if ($this->hasBeenTouched($pageView)) |
|
155 | + { |
|
148 | 156 | $pageView->readContent(); |
149 | 157 | } |
150 | 158 | |
151 | - if ($this->hasBeenTouched($contentItem)) { |
|
159 | + if ($this->hasBeenTouched($contentItem)) |
|
160 | + { |
|
152 | 161 | $contentItem->readContent(); |
153 | 162 | } |
154 | 163 | |
@@ -161,18 +170,21 @@ discard block |
||
161 | 170 | */ |
162 | 171 | private function repeaterPageViewAction(RepeaterPageView $pageView, Compiler $compiler): Closure |
163 | 172 | { |
164 | - return function (ServerRequestInterface $request) use ($pageView, $compiler) { |
|
173 | + return function (ServerRequestInterface $request) use ($pageView, $compiler) |
|
174 | + { |
|
165 | 175 | Service::setOption('currentTemplate', $pageView->getAbsoluteFilePath()); |
166 | 176 | |
167 | 177 | $compiler->getTemplateBridge()->clearTemplateCache(); |
168 | 178 | |
169 | 179 | $expandedValue = self::getExpandedValue($pageView, $request->getUri()->getPath()); |
170 | 180 | |
171 | - if ($expandedValue === null) { |
|
181 | + if ($expandedValue === null) |
|
182 | + { |
|
172 | 183 | return WebServer::return404(); |
173 | 184 | } |
174 | 185 | |
175 | - if ($this->hasBeenTouched($pageView)) { |
|
186 | + if ($this->hasBeenTouched($pageView)) |
|
187 | + { |
|
176 | 188 | $pageView->readContent(); |
177 | 189 | } |
178 | 190 | |
@@ -189,7 +201,8 @@ discard block |
||
189 | 201 | BasePageView::STATIC_TYPE => $this->staticPageViewAction($pageView, $compiler), |
190 | 202 | BasePageView::DYNAMIC_TYPE => $this->dynamicPageViewAction($pageView, $compiler), |
191 | 203 | BasePageView::REPEATER_TYPE => $this->repeaterPageViewAction($pageView, $compiler), |
192 | - default => function () { |
|
204 | + default => function () |
|
205 | + { |
|
193 | 206 | $errMsg = 'This URL type has not yet been implemented.'; |
194 | 207 | |
195 | 208 | return new Response(501, ['Content-Type' => 'text/plain'], $errMsg); |
@@ -218,7 +231,8 @@ discard block |
||
218 | 231 | { |
219 | 232 | $rPath = $document->getRelativeFilePath(); |
220 | 233 | |
221 | - if (!isset($this->lastModified[$rPath])) { |
|
234 | + if (!isset($this->lastModified[$rPath])) |
|
235 | + { |
|
222 | 236 | $this->lastModified[$rPath] = $document->getLastModified(); |
223 | 237 | |
224 | 238 | return true; |
@@ -236,8 +250,10 @@ discard block |
||
236 | 250 | { |
237 | 251 | $permalink = self::normalizeUrl($permalink); |
238 | 252 | |
239 | - foreach ($pageView->getCollectableItems() as $collectableItem) { |
|
240 | - if ($collectableItem['permalink'] === $permalink) { |
|
253 | + foreach ($pageView->getCollectableItems() as $collectableItem) |
|
254 | + { |
|
255 | + if ($collectableItem['permalink'] === $permalink) |
|
256 | + { |
|
241 | 257 | return $collectableItem; |
242 | 258 | } |
243 | 259 | } |
@@ -253,8 +269,10 @@ discard block |
||
253 | 269 | $url = self::normalizeUrl($permalink); |
254 | 270 | $repeaterPermalinks = $pageView->getRepeaterPermalinks(); |
255 | 271 | |
256 | - foreach ($repeaterPermalinks as $expandedValue) { |
|
257 | - if ($expandedValue->getEvaluated() === $url) { |
|
272 | + foreach ($repeaterPermalinks as $expandedValue) |
|
273 | + { |
|
274 | + if ($expandedValue->getEvaluated() === $url) |
|
275 | + { |
|
258 | 276 | return $expandedValue; |
259 | 277 | } |
260 | 278 | } |
@@ -43,7 +43,8 @@ discard block |
||
43 | 43 | */ |
44 | 44 | public function build(): bool |
45 | 45 | { |
46 | - if (empty($this->getConfiguration()->getPageViewFolders())) { |
|
46 | + if (empty($this->getConfiguration()->getPageViewFolders())) |
|
47 | + { |
|
47 | 48 | $this->logger->error('No PageViews were configured for this site. Check the `pageviews` key in your _config.yml.'); |
48 | 49 | |
49 | 50 | return false; |
@@ -63,10 +64,14 @@ discard block |
||
63 | 64 | $this->compiler->setThemeName($theme); |
64 | 65 | $this->compiler->compileAll(); |
65 | 66 | |
66 | - if (Service::hasRunTimeFlag(RuntimeStatus::IN_PROFILE_MODE)) { |
|
67 | - if (!$this->templateBridge->hasProfiler()) { |
|
67 | + if (Service::hasRunTimeFlag(RuntimeStatus::IN_PROFILE_MODE)) |
|
68 | + { |
|
69 | + if (!$this->templateBridge->hasProfiler()) |
|
70 | + { |
|
68 | 71 | $this->logger->writeln('This template engine currently does not support a profiler.'); |
69 | - } else { |
|
72 | + } |
|
73 | + else |
|
74 | + { |
|
70 | 75 | $profilerText = $this->templateBridge->getProfilerOutput($this->compiler); |
71 | 76 | $this->logger->writeln($profilerText); |
72 | 77 | } |
@@ -82,7 +87,8 @@ discard block |
||
82 | 87 | // |
83 | 88 | // Theme Management |
84 | 89 | // |
85 | - if ($theme !== null) { |
|
90 | + if ($theme !== null) |
|
91 | + { |
|
86 | 92 | $this->logger->notice("Looking for '{$theme}' theme..."); |
87 | 93 | |
88 | 94 | $tm = new ThemeManager($theme, $this->eventDispatcher, $this->logger); |
@@ -113,11 +119,13 @@ discard block |
||
113 | 119 | { |
114 | 120 | $targetDir = fs::absolutePath($this->getConfiguration()->getTargetFolder()); |
115 | 121 | |
116 | - if (!Service::hasRunTimeFlag(RuntimeStatus::BOOT_WITHOUT_CLEAN)) { |
|
122 | + if (!Service::hasRunTimeFlag(RuntimeStatus::BOOT_WITHOUT_CLEAN)) |
|
123 | + { |
|
117 | 124 | fs::remove($targetDir); |
118 | 125 | } |
119 | 126 | |
120 | - if (!Service::hasRunTimeFlag(RuntimeStatus::USING_CACHE)) { |
|
127 | + if (!Service::hasRunTimeFlag(RuntimeStatus::USING_CACHE)) |
|
128 | + { |
|
121 | 129 | fs::remove(fs::absolutePath(Configuration::CACHE_FOLDER, 'twig')); |
122 | 130 | fs::mkdir(fs::absolutePath(fs::appendPath(Configuration::CACHE_FOLDER, 'twig'))); |
123 | 131 | } |
@@ -132,20 +140,24 @@ discard block |
||
132 | 140 | { |
133 | 141 | $enabled = $this->getConfiguration()->isHighlighterEnabled(); |
134 | 142 | |
135 | - if (!$enabled) { |
|
143 | + if (!$enabled) |
|
144 | + { |
|
136 | 145 | return; |
137 | 146 | } |
138 | 147 | |
139 | 148 | Service::setRuntimeFlag(RuntimeStatus::USING_HIGHLIGHTER); |
140 | 149 | |
141 | - if ($this->getConfiguration()->isHighlighterUsingLineNumbers()) { |
|
150 | + if ($this->getConfiguration()->isHighlighterUsingLineNumbers()) |
|
151 | + { |
|
142 | 152 | Service::setRuntimeFlag(RuntimeStatus::USING_LINE_NUMBERS); |
143 | 153 | } |
144 | 154 | |
145 | - foreach ($this->getConfiguration()->getHighlighterCustomLanguages() as $lang => $path) { |
|
155 | + foreach ($this->getConfiguration()->getHighlighterCustomLanguages() as $lang => $path) |
|
156 | + { |
|
146 | 157 | $fullPath = fs::absolutePath($path); |
147 | 158 | |
148 | - if (!fs::exists($fullPath)) { |
|
159 | + if (!fs::exists($fullPath)) |
|
160 | + { |
|
149 | 161 | $this->logger->warning('The following language definition could not be found: {lang}', [ |
150 | 162 | 'lang' => $path, |
151 | 163 | ]); |
@@ -171,7 +171,7 @@ |
||
171 | 171 | return __::get($this->configuration, 'twig.autoescape'); |
172 | 172 | } |
173 | 173 | |
174 | - public function getRedirectTemplate(): false|string |
|
174 | + public function getRedirectTemplate(): false | string |
|
175 | 175 | { |
176 | 176 | return __::get($this->configuration, 'templates.redirect'); |
177 | 177 | } |
@@ -210,18 +210,21 @@ discard block |
||
210 | 210 | */ |
211 | 211 | private function parseConfig(File $configFile = null): array |
212 | 212 | { |
213 | - if ($configFile === null) { |
|
213 | + if ($configFile === null) |
|
214 | + { |
|
214 | 215 | return []; |
215 | 216 | } |
216 | 217 | |
217 | 218 | $this->currentFile = $configFile; |
218 | 219 | |
219 | - try { |
|
220 | + try |
|
221 | + { |
|
220 | 222 | $this->isRecursiveImport($configFile); |
221 | 223 | |
222 | 224 | $parsedConfig = Yaml::parse($configFile->getContents()); |
223 | 225 | |
224 | - if ($parsedConfig === null) { |
|
226 | + if ($parsedConfig === null) |
|
227 | + { |
|
225 | 228 | $parsedConfig = []; |
226 | 229 | } |
227 | 230 | |
@@ -230,13 +233,17 @@ discard block |
||
230 | 233 | unset($parsedConfig[self::IMPORT_KEYWORD]); |
231 | 234 | |
232 | 235 | return $parsedConfig; |
233 | - } catch (ParseException $e) { |
|
236 | + } |
|
237 | + catch (ParseException $e) |
|
238 | + { |
|
234 | 239 | $this->logger->error('{file}: parsing failed... {message}', [ |
235 | 240 | 'message' => $e->getMessage(), |
236 | 241 | 'file' => $configFile, |
237 | 242 | ]); |
238 | 243 | $this->logger->error('Using default configuration...'); |
239 | - } catch (RecursiveConfigurationException $e) { |
|
244 | + } |
|
245 | + catch (RecursiveConfigurationException $e) |
|
246 | + { |
|
240 | 247 | $this->logger->error("{file}: you can't recursively import a file that's already been imported: {import}", [ |
241 | 248 | 'file' => $configFile, |
242 | 249 | 'import' => $e->getRecursiveImport(), |
@@ -297,7 +304,8 @@ discard block |
||
297 | 304 | */ |
298 | 305 | private function handleImports(array &$configuration): void |
299 | 306 | { |
300 | - if (!isset($configuration[self::IMPORT_KEYWORD])) { |
|
307 | + if (!isset($configuration[self::IMPORT_KEYWORD])) |
|
308 | + { |
|
301 | 309 | $this->logger->debug('{file}: does not import any other files', [ |
302 | 310 | 'file' => $this->currentFile->getRelativeFilePath(), |
303 | 311 | ]); |
@@ -305,13 +313,15 @@ discard block |
||
305 | 313 | return; |
306 | 314 | } |
307 | 315 | |
308 | - if (!is_array($imports = $configuration[self::IMPORT_KEYWORD])) { |
|
316 | + if (!is_array($imports = $configuration[self::IMPORT_KEYWORD])) |
|
317 | + { |
|
309 | 318 | $this->logger->error('{file}: the reserved "import" keyword can only be an array'); |
310 | 319 | |
311 | 320 | return; |
312 | 321 | } |
313 | 322 | |
314 | - foreach ($imports as $import) { |
|
323 | + foreach ($imports as $import) |
|
324 | + { |
|
315 | 325 | $this->handleImport($import, $configuration); |
316 | 326 | } |
317 | 327 | } |
@@ -325,7 +335,8 @@ discard block |
||
325 | 335 | */ |
326 | 336 | private function handleImport($importDef, array &$configuration): void |
327 | 337 | { |
328 | - if (!is_string($importDef)) { |
|
338 | + if (!is_string($importDef)) |
|
339 | + { |
|
329 | 340 | $this->logger->error('{file}: invalid import: {message}', [ |
330 | 341 | 'file' => $this->configFile->getRelativeFilePath(), |
331 | 342 | 'message' => $importDef, |
@@ -336,7 +347,8 @@ discard block |
||
336 | 347 | |
337 | 348 | $import = $this->configFile->createFileForRelativePath($importDef); |
338 | 349 | |
339 | - if (!$this->isValidImport($import)) { |
|
350 | + if (!$this->isValidImport($import)) |
|
351 | + { |
|
340 | 352 | return; |
341 | 353 | } |
342 | 354 | |
@@ -345,10 +357,13 @@ discard block |
||
345 | 357 | 'import' => $import->getRelativeFilePath(), |
346 | 358 | ]); |
347 | 359 | |
348 | - try { |
|
360 | + try |
|
361 | + { |
|
349 | 362 | $importedConfig = $this->parseConfig($import); |
350 | 363 | $configuration = $this->mergeImports($importedConfig, $configuration); |
351 | - } catch (FileNotFoundException) { |
|
364 | + } |
|
365 | + catch (FileNotFoundException) |
|
366 | + { |
|
352 | 367 | $this->logger->warning('{file}: could not find file to import: {import}', [ |
353 | 368 | 'file' => $this->configFile->getRelativeFilePath(), |
354 | 369 | 'import' => $import, |
@@ -363,17 +378,25 @@ discard block |
||
363 | 378 | { |
364 | 379 | $errorMsg = ''; |
365 | 380 | |
366 | - if ($filePath->isDir()) { |
|
381 | + if ($filePath->isDir()) |
|
382 | + { |
|
367 | 383 | $errorMsg = 'a directory'; |
368 | - } elseif ($filePath->isLink()) { |
|
384 | + } |
|
385 | + elseif ($filePath->isLink()) |
|
386 | + { |
|
369 | 387 | $errorMsg = 'a symbolically linked file'; |
370 | - } elseif ($this->currentFile->getAbsolutePath() == $filePath->getAbsolutePath()) { |
|
388 | + } |
|
389 | + elseif ($this->currentFile->getAbsolutePath() == $filePath->getAbsolutePath()) |
|
390 | + { |
|
371 | 391 | $errorMsg = 'yourself'; |
372 | - } elseif (($ext = $filePath->getExtension()) != 'yml' && $ext != 'yaml') { |
|
392 | + } |
|
393 | + elseif (($ext = $filePath->getExtension()) != 'yml' && $ext != 'yaml') |
|
394 | + { |
|
373 | 395 | $errorMsg = 'a non-YAML configuration'; |
374 | 396 | } |
375 | 397 | |
376 | - if (!($noErrors = empty($errorMsg))) { |
|
398 | + if (!($noErrors = empty($errorMsg))) |
|
399 | + { |
|
377 | 400 | $this->logger->error("{file}: you can't import {message}: {import}", [ |
378 | 401 | 'file' => $this->configFile->getRelativeFilePath(), |
379 | 402 | 'message' => $errorMsg, |
@@ -389,7 +412,8 @@ discard block |
||
389 | 412 | */ |
390 | 413 | private function isRecursiveImport(File $filePath): void |
391 | 414 | { |
392 | - if (in_array($filePath->getRelativeFilePath(), self::$configImports)) { |
|
415 | + if (in_array($filePath->getRelativeFilePath(), self::$configImports)) |
|
416 | + { |
|
393 | 417 | throw new RecursiveConfigurationException($filePath, sprintf( |
394 | 418 | 'The %s file has already been imported', |
395 | 419 | $filePath->getRelativeFilePath() |
@@ -412,11 +436,13 @@ discard block |
||
412 | 436 | |
413 | 437 | private function handleDefaultOperations(): void |
414 | 438 | { |
415 | - if (substr($this->getTargetFolder(), 0, 1) != '_') { |
|
439 | + if (substr($this->getTargetFolder(), 0, 1) != '_') |
|
440 | + { |
|
416 | 441 | $this->configuration['exclude'][] = $this->getTargetFolder(); |
417 | 442 | } |
418 | 443 | |
419 | - if ($this->configuration['build']['preserveCase']) { |
|
444 | + if ($this->configuration['build']['preserveCase']) |
|
445 | + { |
|
420 | 446 | Service::setRuntimeFlag(RuntimeStatus::COMPILER_PRESERVE_CASE); |
421 | 447 | } |
422 | 448 | } |
@@ -18,7 +18,8 @@ |
||
18 | 18 | $columns = array_shift($rows); |
19 | 19 | $csv = []; |
20 | 20 | |
21 | - foreach ($rows as $row) { |
|
21 | + foreach ($rows as $row) |
|
22 | + { |
|
22 | 23 | $csv[] = array_combine($columns, $row); |
23 | 24 | } |
24 | 25 |