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

@@ -17,14 +17,17 @@ use App\Framework\Reflection\WrappedReflectionClass;
*/
final class InterfaceImplementationVisitor implements FileVisitor, ReflectionAwareVisitor
{
/** @var array<string, mixed> */
private array $interfaces = [];
/** @var array<string, array<int, string>> */
private array $implementations = [];
/** @var array<string, array<int, string>> */
private array $implementationsByClass = [];
/**
* @param array $targetInterfaces Die zu suchenden Interfaces
* @param array<int, string> $targetInterfaces Die zu suchenden Interfaces
*/
public function __construct(
private readonly array $targetInterfaces = []
@@ -147,6 +150,9 @@ final class InterfaceImplementationVisitor implements FileVisitor, ReflectionAwa
return CacheKey::fromString('interface_implementations');
}
/**
* @return array<string, mixed>
*/
public function getCacheableData(): array
{
return [
@@ -157,6 +163,7 @@ final class InterfaceImplementationVisitor implements FileVisitor, ReflectionAwa
/**
* Gibt alle Implementierungen eines Interfaces zurück
* @return array<int, string>
*/
public function getImplementations(string $interface): array
{
@@ -174,6 +181,7 @@ final class InterfaceImplementationVisitor implements FileVisitor, ReflectionAwa
/**
* Gibt alle Interfaces zurück, die eine Klasse implementiert
* @return array<int, string>
*/
public function getClassInterfaces(string $className): array
{
@@ -182,6 +190,7 @@ final class InterfaceImplementationVisitor implements FileVisitor, ReflectionAwa
/**
* Gibt alle gefundenen Implementierungen zurück
* @return array<string, array<int, string>>
*/
public function getAllImplementations(): array
{