Files
michaelschiemer/src/Framework/Router/Exception/RouteNotFound.php
Michael Schiemer 9b74ade5b0 feat: Fix discovery system critical issues
Resolved multiple critical discovery system issues:

## Discovery System Fixes
- Fixed console commands not being discovered on first run
- Implemented fallback discovery for empty caches
- Added context-aware caching with separate cache keys
- Fixed object serialization preventing __PHP_Incomplete_Class

## Cache System Improvements
- Smart caching that only caches meaningful results
- Separate caches for different execution contexts (console, web, test)
- Proper array serialization/deserialization for cache compatibility
- Cache hit logging for debugging and monitoring

## Object Serialization Fixes
- Fixed DiscoveredAttribute serialization with proper string conversion
- Sanitized additional data to prevent object reference issues
- Added fallback for corrupted cache entries

## Performance & Reliability
- All 69 console commands properly discovered and cached
- 534 total discovery items successfully cached and restored
- No more __PHP_Incomplete_Class cache corruption
- Improved error handling and graceful fallbacks

## Testing & Quality
- Fixed code style issues across discovery components
- Enhanced logging for better debugging capabilities
- Improved cache validation and error recovery

Ready for production deployment with stable discovery system.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-13 12:04:17 +02:00

37 lines
947 B
PHP

<?php
declare(strict_types=1);
namespace App\Framework\Router\Exception;
use App\Framework\Exception\ExceptionContext;
use App\Framework\Exception\FrameworkException;
use App\Framework\Http\Exception\HttpException;
use App\Framework\Http\Status;
use Throwable;
class RouteNotFound extends FrameworkException implements HttpException
{
public Status $status {
get {
return Status::NOT_FOUND;
}
}
protected string $route;
public function __construct(string $route, ?Throwable $previous = null, int $code = 0, array $context = [])
{
$this->route = $route;
$message = "Route not found: {$route}";
$exceptionContext = new ExceptionContext(
operation: 'route_resolution',
component: 'router',
data: array_merge(['route' => $route], $context)
);
parent::__construct($message, $exceptionContext, $code, $previous);
}
}