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

@@ -286,6 +286,7 @@ final readonly class AdvancedHash
/**
* Get available hash algorithms
* @return array<int, string>
*/
public function getAvailableAlgorithms(): array
{

View File

@@ -62,6 +62,7 @@ final readonly class ConstantTimeExecutor
/**
* Execute operation and return both result and actual duration
* @return array<string, mixed>
*/
public function executeWithTiming(callable $operation): array
{

View File

@@ -30,6 +30,8 @@ final readonly class CryptographicUtilities
/**
* Timing-safe comparison of arrays
* @param array<mixed> $known
* @param array<mixed> $user
*/
public function timingSafeArrayEquals(array $known, array $user): bool
{

View File

@@ -172,6 +172,7 @@ final readonly class DerivedKey
/**
* Export to array (for serialization)
* @return array<string, mixed>
*/
public function toArray(): array
{
@@ -204,6 +205,7 @@ final readonly class DerivedKey
/**
* Create from array (for deserialization)
* @param array<string, mixed> $data
*/
public static function fromArray(array $data): self
{
@@ -275,6 +277,7 @@ final readonly class DerivedKey
/**
* Get summary information (safe for logging)
* @return array<string, mixed>
*/
public function getSummary(): array
{

View File

@@ -171,6 +171,7 @@ final readonly class DigitalSignature
/**
* Sign JSON data (useful for API signatures)
* @param array<string, mixed> $data
*/
public function signJson(
array $data,
@@ -190,6 +191,7 @@ final readonly class DigitalSignature
/**
* Verify JSON signature
* @param array<string, mixed> $data
*/
public function verifyJson(
array $data,

View File

@@ -130,6 +130,7 @@ final readonly class DigitalSignatureResult
/**
* Export to array (for serialization)
* @return array<string, mixed>
*/
public function toArray(): array
{
@@ -149,6 +150,7 @@ final readonly class DigitalSignatureResult
/**
* Create from array (for deserialization)
* @param array<string, mixed> $data
*/
public static function fromArray(array $data): self
{
@@ -242,6 +244,7 @@ final readonly class DigitalSignatureResult
/**
* Get summary information (safe for logging)
* @return array<string, mixed>
*/
public function getSummary(): array
{

View File

@@ -186,6 +186,7 @@ final readonly class HashResult
/**
* Export to array (for serialization)
* @return array<string, mixed>
*/
public function toArray(): array
{
@@ -213,6 +214,7 @@ final readonly class HashResult
/**
* Create from array (for deserialization)
* @param array<string, mixed> $data
*/
public static function fromArray(array $data): self
{
@@ -292,6 +294,7 @@ final readonly class HashResult
/**
* Get summary information (safe for logging)
* @return array<string, mixed>
*/
public function getSummary(): array
{

View File

@@ -294,6 +294,7 @@ final readonly class KeyDerivationFunction
/**
* Get recommended parameters for different security levels
* @return array<string, mixed>
*/
public function getRecommendedParameters(string $algorithm, string $securityLevel = 'standard'): array
{

View File

@@ -75,6 +75,7 @@ final readonly class KeyPair
/**
* Export both keys to array
* @return array<string, array<string, mixed>>
*/
public function toArray(): array
{
@@ -86,6 +87,7 @@ final readonly class KeyPair
/**
* Get key pair summary (safe for logging)
* @return array<string, mixed>
*/
public function getSummary(): array
{

View File

@@ -95,6 +95,7 @@ final readonly class PrivateKey
/**
* Export key information to array (excludes sensitive key material)
* @return array<string, mixed>
*/
public function toArray(): array
{

View File

@@ -91,6 +91,7 @@ final readonly class PublicKey
/**
* Export key to array (includes key material - safe for public keys)
* @return array<string, mixed>
*/
public function toArray(): array
{
@@ -109,6 +110,7 @@ final readonly class PublicKey
/**
* Create from array
* @param array<string, mixed> $data
*/
public static function fromArray(array $data): self
{
@@ -208,6 +210,7 @@ final readonly class PublicKey
/**
* Get key as JWK (JSON Web Key) format
* @return array<string, mixed>
*/
public function toJwk(): array
{

View File

@@ -24,6 +24,7 @@ final readonly class SecureToken
private int $length,
private ?string $prefix,
private string $rawBytes,
/** @var array<string, mixed> */
private array $metadata
) {
if (empty($value)) {
@@ -95,6 +96,7 @@ final readonly class SecureToken
/**
* Get metadata
* @return array<string, mixed>
*/
public function getMetadata(): array
{
@@ -285,6 +287,7 @@ final readonly class SecureToken
/**
* Export to array (for serialization)
* @return array<string, mixed>
*/
public function toArray(): array
{
@@ -302,6 +305,7 @@ final readonly class SecureToken
/**
* Create from array (for deserialization)
* @param array<string, mixed> $data
*/
public static function fromArray(array $data): self
{
@@ -336,6 +340,7 @@ final readonly class SecureToken
/**
* Get safe summary (excludes sensitive token value)
* @return array<string, mixed>
*/
public function getSafeSummary(): array
{

View File

@@ -39,6 +39,7 @@ final readonly class SecureTokenGenerator
/**
* Generate a secure token
* @param array<string, mixed>|null $metadata
*/
public function generate(
string $type,
@@ -257,6 +258,7 @@ final readonly class SecureTokenGenerator
/**
* Generate batch of tokens
* @return array<int, SecureToken>
*/
public function generateBatch(
string $type,