From 8f5893f0691e81380fa6f7670f45e18cc5d27fce Mon Sep 17 00:00:00 2001 From: Caen De Silva Date: Tue, 14 Mar 2023 13:19:42 +0100 Subject: [PATCH 1/8] Add string type casts --- .../framework/src/Framework/Services/MarkdownService.php | 8 ++++---- .../Markdown/Processing/CodeblockFilepathProcessor.php | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/framework/src/Framework/Services/MarkdownService.php b/packages/framework/src/Framework/Services/MarkdownService.php index 151f2afe678..db03d7c133e 100644 --- a/packages/framework/src/Framework/Services/MarkdownService.php +++ b/packages/framework/src/Framework/Services/MarkdownService.php @@ -231,7 +231,7 @@ public static function normalizeIndentationLevel(string $string): string foreach ($lines as $lineNumber => $line) { if ($lineNumber >= $startNumber) { - $lines[$lineNumber] = substr($line, $indentationLevel); + $lines[$lineNumber] = substr((string) $line, $indentationLevel); } } @@ -247,9 +247,9 @@ protected static function getNormalizedLines(string $string): array protected static function findLineContentPositions(array $lines): array { foreach ($lines as $lineNumber => $line) { - if (filled(trim($line))) { - $lineLen = strlen($line); - $stripLen = strlen(ltrim($line)); // Length of the line without indentation lets us know its indentation level, and thus how much to strip from each line + if (filled(trim((string) $line))) { + $lineLen = strlen((string) $line); + $stripLen = strlen(ltrim((string) $line)); // Length of the line without indentation lets us know its indentation level, and thus how much to strip from each line if ($lineLen !== $stripLen) { return [$lineNumber, $lineLen - $stripLen]; diff --git a/packages/framework/src/Markdown/Processing/CodeblockFilepathProcessor.php b/packages/framework/src/Markdown/Processing/CodeblockFilepathProcessor.php index ce9b939e2a2..03df5102ee9 100644 --- a/packages/framework/src/Markdown/Processing/CodeblockFilepathProcessor.php +++ b/packages/framework/src/Markdown/Processing/CodeblockFilepathProcessor.php @@ -93,7 +93,7 @@ public static function postprocess(string $html): string protected static function lineMatchesPattern(string $line): bool { foreach (static::$patterns as $pattern) { - if (str_starts_with(strtolower($line), $pattern)) { + if (str_starts_with(strtolower($line), (string) $pattern)) { return true; } } From 24361ddb12da0312540e8c095702ddd05af9c5c7 Mon Sep 17 00:00:00 2001 From: Caen De Silva Date: Tue, 14 Mar 2023 14:46:18 +0100 Subject: [PATCH 2/8] Add braces around variable for dynamic property call --- .../framework/src/Framework/Features/Metadata/MetadataBag.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/framework/src/Framework/Features/Metadata/MetadataBag.php b/packages/framework/src/Framework/Features/Metadata/MetadataBag.php index 1324e6f5223..29d3ef5090f 100644 --- a/packages/framework/src/Framework/Features/Metadata/MetadataBag.php +++ b/packages/framework/src/Framework/Features/Metadata/MetadataBag.php @@ -65,7 +65,7 @@ public function add(MetadataElementContract|string $element): static protected function addElement(string $type, MetadataElementContract $element): static { - $this->$type[$element->uniqueKey()] = $element; + $this->{$type}[$element->uniqueKey()] = $element; return $this; } From 91eda316405df5cb1329d8b9e236f3accb053177 Mon Sep 17 00:00:00 2001 From: Caen De Silva Date: Tue, 14 Mar 2023 14:49:50 +0100 Subject: [PATCH 3/8] Use instanceof check instead of string equality --- packages/framework/src/Console/Commands/RouteListCommand.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/framework/src/Console/Commands/RouteListCommand.php b/packages/framework/src/Console/Commands/RouteListCommand.php index 1bf461b913a..6379740060b 100644 --- a/packages/framework/src/Console/Commands/RouteListCommand.php +++ b/packages/framework/src/Console/Commands/RouteListCommand.php @@ -6,6 +6,7 @@ use Hyde\Console\Concerns\Command; use Hyde\Hyde; +use Hyde\Pages\InMemoryPage; use Hyde\Support\Models\Route; use Hyde\Support\Models\RouteList; use Hyde\Support\Models\RouteListItem; @@ -48,7 +49,7 @@ protected function stylePageType(string $class): string $type = parent::stylePageType($class); /** @experimental */ - if ($type === 'InMemoryPage' && $this->route->getPage()->hasMacro('typeLabel')) { + if ($this->route->getPage() instanceof InMemoryPage && $this->route->getPage()->hasMacro('typeLabel')) { $type .= sprintf(' (%s)', $this->route->getPage()->typeLabel()); } From 2c13253d7c9c83bd3d305ad7fee04bcd2348a857 Mon Sep 17 00:00:00 2001 From: Caen De Silva Date: Tue, 14 Mar 2023 14:50:34 +0100 Subject: [PATCH 4/8] Introduce local variable --- packages/framework/src/Console/Commands/RouteListCommand.php | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/packages/framework/src/Console/Commands/RouteListCommand.php b/packages/framework/src/Console/Commands/RouteListCommand.php index 6379740060b..851ae37d2b0 100644 --- a/packages/framework/src/Console/Commands/RouteListCommand.php +++ b/packages/framework/src/Console/Commands/RouteListCommand.php @@ -49,8 +49,9 @@ protected function stylePageType(string $class): string $type = parent::stylePageType($class); /** @experimental */ - if ($this->route->getPage() instanceof InMemoryPage && $this->route->getPage()->hasMacro('typeLabel')) { - $type .= sprintf(' (%s)', $this->route->getPage()->typeLabel()); + $page = $this->route->getPage(); + if ($page instanceof InMemoryPage && $page->hasMacro('typeLabel')) { + $type .= sprintf(' (%s)', $page->typeLabel()); } return $type; From 51d4986355214b7f779fc9cd20abf2f53ab6da31 Mon Sep 17 00:00:00 2001 From: Caen De Silva Date: Tue, 14 Mar 2023 14:50:46 +0100 Subject: [PATCH 5/8] Move down experimental annotation --- packages/framework/src/Console/Commands/RouteListCommand.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/framework/src/Console/Commands/RouteListCommand.php b/packages/framework/src/Console/Commands/RouteListCommand.php index 851ae37d2b0..21c96885d66 100644 --- a/packages/framework/src/Console/Commands/RouteListCommand.php +++ b/packages/framework/src/Console/Commands/RouteListCommand.php @@ -48,8 +48,8 @@ protected function stylePageType(string $class): string { $type = parent::stylePageType($class); - /** @experimental */ $page = $this->route->getPage(); + /** @experimental */ if ($page instanceof InMemoryPage && $page->hasMacro('typeLabel')) { $type .= sprintf(' (%s)', $page->typeLabel()); } From 262179ac3e7036a1468fce35ec2acd82a607d5e5 Mon Sep 17 00:00:00 2001 From: Caen De Silva Date: Tue, 14 Mar 2023 14:51:15 +0100 Subject: [PATCH 6/8] Update experimental annotation --- packages/framework/src/Console/Commands/RouteListCommand.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/framework/src/Console/Commands/RouteListCommand.php b/packages/framework/src/Console/Commands/RouteListCommand.php index 21c96885d66..ad394cdb431 100644 --- a/packages/framework/src/Console/Commands/RouteListCommand.php +++ b/packages/framework/src/Console/Commands/RouteListCommand.php @@ -49,7 +49,7 @@ protected function stylePageType(string $class): string $type = parent::stylePageType($class); $page = $this->route->getPage(); - /** @experimental */ + /** @experimental The typeLabel macro is experimental */ if ($page instanceof InMemoryPage && $page->hasMacro('typeLabel')) { $type .= sprintf(' (%s)', $page->typeLabel()); } From f045ee91a91973d5bf42999cc7a7704ef3992b9d Mon Sep 17 00:00:00 2001 From: Caen De Silva Date: Tue, 14 Mar 2023 14:51:43 +0100 Subject: [PATCH 7/8] Use magic __call instead of dynamic property for better IDE support --- packages/framework/src/Console/Commands/RouteListCommand.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/framework/src/Console/Commands/RouteListCommand.php b/packages/framework/src/Console/Commands/RouteListCommand.php index ad394cdb431..1fe035c5cda 100644 --- a/packages/framework/src/Console/Commands/RouteListCommand.php +++ b/packages/framework/src/Console/Commands/RouteListCommand.php @@ -51,7 +51,7 @@ protected function stylePageType(string $class): string $page = $this->route->getPage(); /** @experimental The typeLabel macro is experimental */ if ($page instanceof InMemoryPage && $page->hasMacro('typeLabel')) { - $type .= sprintf(' (%s)', $page->typeLabel()); + $type .= sprintf(' (%s)', $page->__call('typeLabel', [])); } return $type; From 2e972214be757b47b0dcbfd0ebab2ab2fa5ab4b0 Mon Sep 17 00:00:00 2001 From: Caen De Silva Date: Tue, 14 Mar 2023 14:55:38 +0100 Subject: [PATCH 8/8] Update RELEASE_NOTES.md --- RELEASE_NOTES.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md index e3d1b60364c..31e79845f97 100644 --- a/RELEASE_NOTES.md +++ b/RELEASE_NOTES.md @@ -13,7 +13,7 @@ This serves two purposes: - for new features. ### Changed -- for changes in existing functionality. +- General compatible code quality improvements https://github.com/hydephp/develop/pull/1284 ### Deprecated - for soon-to-be removed features.