- 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
42 lines
1.1 KiB
PHP
42 lines
1.1 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace App\Framework\Discovery\Events;
|
|
|
|
use App\Framework\Core\ValueObjects\Timestamp;
|
|
use App\Framework\Discovery\Results\DiscoveryRegistry;
|
|
use App\Framework\Discovery\ValueObjects\ScanType;
|
|
use Throwable;
|
|
|
|
/**
|
|
* Event fired when discovery process fails
|
|
*/
|
|
final readonly class DiscoveryFailedEvent
|
|
{
|
|
public function __construct(
|
|
public Throwable $exception,
|
|
public ?DiscoveryRegistry $partialResults,
|
|
public ScanType $scanType,
|
|
public Timestamp $timestamp
|
|
) {
|
|
}
|
|
|
|
public function hasPartialResults(): bool
|
|
{
|
|
return $this->partialResults !== null;
|
|
}
|
|
|
|
public function toArray(): array
|
|
{
|
|
return [
|
|
'error' => $this->exception->getMessage(),
|
|
'error_type' => get_class($this->exception),
|
|
'has_partial_results' => $this->hasPartialResults(),
|
|
'partial_files_count' => $this->partialResults ? $this->partialResults->count() : 0,
|
|
'scan_type' => $this->scanType->value,
|
|
'timestamp' => $this->timestamp->toFloat(),
|
|
];
|
|
}
|
|
}
|