Enable Discovery debug logging for production troubleshooting

- Add DISCOVERY_LOG_LEVEL=debug
- Add DISCOVERY_SHOW_PROGRESS=true
- Temporary changes for debugging InitializerProcessor fixes on production
This commit is contained in:
2025-08-11 20:13:26 +02:00
parent 59fd3dd3b1
commit 55a330b223
3683 changed files with 2956207 additions and 16948 deletions

View File

@@ -0,0 +1,31 @@
<?php
declare(strict_types=1);
namespace App\Framework\Cache\Contracts;
use App\Framework\Cache\CacheDriver;
/**
* Interface for cache implementations that can provide access to their underlying driver
*
* This allows proper access to driver-specific features like scanning
* without resorting to reflection APIs.
*/
interface DriverAccessible
{
/**
* Get the underlying cache driver for direct access
*
* @return CacheDriver|null The driver, or null if not available
*/
public function getDriver(): ?CacheDriver;
/**
* Check if the underlying driver supports a specific interface
*
* @param class-string $interface The interface to check for
* @return bool Whether the driver implements the interface
*/
public function driverSupports(string $interface): bool;
}

View File

@@ -0,0 +1,51 @@
<?php
declare(strict_types=1);
namespace App\Framework\Cache\Contracts;
/**
* Interface for cache drivers that support key scanning operations
*
* Not all drivers can efficiently scan keys, so this is optional.
* Drivers that implement this interface can provide pattern-based operations.
*/
interface Scannable
{
/**
* Scan for keys matching a pattern
*
* @param string $pattern Wildcard pattern (e.g., "user:*", "cache.*.data")
* @param int $limit Maximum number of keys to return (0 = no limit)
* @return array<string> Array of matching key strings
*/
public function scan(string $pattern, int $limit = 1000): array;
/**
* Scan for keys with a specific prefix
*
* @param string $prefix Key prefix to match
* @param int $limit Maximum number of keys to return (0 = no limit)
* @return array<string> Array of matching key strings
*/
public function scanPrefix(string $prefix, int $limit = 1000): array;
/**
* Get all available keys (use with caution on large datasets)
*
* @param int $limit Maximum number of keys to return (0 = no limit)
* @return array<string> Array of all key strings
*/
public function getAllKeys(int $limit = 1000): array;
/**
* Get performance characteristics of scanning for this driver
*
* @return array{
* efficient: bool,
* max_recommended_keys: int,
* estimated_time_per_1000_keys: float
* }
*/
public function getScanPerformance(): array;
}