fix: resolve RedisCache array offset error and improve discovery diagnostics

- Fix RedisCache driver to handle MGET failures gracefully with fallback
- Add comprehensive discovery context comparison debug tools
- Identify root cause: WEB context discovery missing 166 items vs CLI
- WEB context missing RequestFactory class entirely (52 vs 69 commands)
- Improved exception handling with detailed binding diagnostics
This commit is contained in:
2025-09-12 20:05:18 +02:00
parent 8040d3e7a5
commit e30753ba0e
46990 changed files with 10789682 additions and 89639 deletions

View File

@@ -10,6 +10,11 @@ final readonly class MetaData
public string $title,
public string $description = '',
public OpenGraph $openGraph = new OpenGraphTypeWebsite(),
) {
) {}
public function __toString(): string
{
return (string) new MetaTag(MetaTagName::DESCRIPTION, $this->description);
}
}

View File

@@ -3,7 +3,23 @@ declare(strict_types=1);
namespace App\Framework\Meta;
final class MetaTag
final readonly class MetaTag
{
public function __construct(
public MetaTagName|MetaTagProperty $type,
public string $content,
) {}
private function getTypeName(): string
{
return match (true) {
$this->type instanceof MetaTagName => 'name',
$this->type instanceof MetaTagProperty => 'property',
};
}
public function __toString(): string
{
return "<meta {$this->getTypeName()}=\"{$this->type->value}\" content=\"{$this->content}\">";
}
}

View File

@@ -3,8 +3,7 @@ declare(strict_types=1);
namespace App\Framework\Meta;
enum MetaTagType: string
enum MetaTagName: string
{
case NAME = 'name';
case PROPERTY = 'property';
case DESCRIPTION = 'description';
}

View File

@@ -2,7 +2,29 @@
namespace App\Framework\Meta;
enum MetaTagProperty
enum MetaTagProperty: string
{
case OG_TITLE = 'og:title';
case OG_DESCRIPTION = 'og:description';
case OG_TYPE = 'og:type';
case OG_URL = 'og:url';
case OG_IMAGE = 'og:image';
case OG_IMAGE_ALT = 'og:image:alt';
case OG_IMAGE_TYPE = 'og:image:type';
case OG_IMAGE_WIDTH = 'og:image:width';
case OG_IMAGE_HEIGHT = 'og:image:height';
case OG_SITE_NAME = 'og:site_name';
case OG_LOCALE = 'og:locale';
case OG_LOCALE_ALTERNATE = 'og:locale:alternate';
case OG_VIDEO = 'og:video';
case OG_VIDEO_TYPE = 'og:video:type';
case OG_VIDEO_WIDTH = 'og:video:width';
case OG_VIDEO_HEIGHT = 'og:video:height';
case OG_VIDEO_TAG = 'og:video:tag';
case OG_AUDIO = 'og:audio';
case OG_AUDIO_TYPE = 'og:audio:type';
case OG_AUDIO_WIDTH = 'og:audio:width';
case OG_AUDIO_HEIGHT = 'og:audio:height';
case OG_AUDIO_TAG = 'og:audio:tag';
case OG_AUDIO_SECURE_URL = 'og:audio:secure_url';
}