refactor(discovery): enhance exception handling and logging context in FileProcessor
- Add `DiscoveryErrorCode` and `FileSystemErrorCode` to improve error classification in `DiscoveryException`. - Integrate `LogContext` into `FileProcessor` warnings for enriched logging details. - Simplify `Environment` variable handling by removing redundant condition checks.
This commit is contained in:
@@ -23,7 +23,7 @@ final readonly class Environment
|
|||||||
{
|
{
|
||||||
$key = $this->keyToString($key);
|
$key = $this->keyToString($key);
|
||||||
|
|
||||||
// 1. Check if direct env var exists in internal array and is not empty
|
// 1. Check if a direct env var exists in an internal array and is not empty.
|
||||||
// Empty strings are treated as "not set" to allow Docker Secrets resolution
|
// Empty strings are treated as "not set" to allow Docker Secrets resolution
|
||||||
if (isset($this->variables[$key])) {
|
if (isset($this->variables[$key])) {
|
||||||
$value = $this->variables[$key];
|
$value = $this->variables[$key];
|
||||||
@@ -54,7 +54,7 @@ final readonly class Environment
|
|||||||
// This preserves the original behavior: if variable is explicitly set to empty string, return it
|
// This preserves the original behavior: if variable is explicitly set to empty string, return it
|
||||||
// BUT: Only do this if no Docker Secret was found (otherwise empty string would override the secret)
|
// BUT: Only do this if no Docker Secret was found (otherwise empty string would override the secret)
|
||||||
// secretValue is null if no secret was found
|
// secretValue is null if no secret was found
|
||||||
if (isset($this->variables[$key]) && $secretValue === null) {
|
if (isset($this->variables[$key])) {
|
||||||
return $this->variables[$key];
|
return $this->variables[$key];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -4,6 +4,8 @@ declare(strict_types=1);
|
|||||||
|
|
||||||
namespace App\Framework\Discovery\Exceptions;
|
namespace App\Framework\Discovery\Exceptions;
|
||||||
|
|
||||||
|
use App\Framework\Exception\Core\DiscoveryErrorCode;
|
||||||
|
use App\Framework\Exception\Core\FileSystemErrorCode;
|
||||||
use App\Framework\Exception\ErrorCode;
|
use App\Framework\Exception\ErrorCode;
|
||||||
use App\Framework\Exception\ExceptionContext;
|
use App\Framework\Exception\ExceptionContext;
|
||||||
use App\Framework\Exception\FrameworkException;
|
use App\Framework\Exception\FrameworkException;
|
||||||
|
|||||||
@@ -16,6 +16,7 @@ use App\Framework\Filesystem\FileScanner;
|
|||||||
use App\Framework\Filesystem\FileSystemService;
|
use App\Framework\Filesystem\FileSystemService;
|
||||||
use App\Framework\Filesystem\ValueObjects\FilePattern;
|
use App\Framework\Filesystem\ValueObjects\FilePattern;
|
||||||
use App\Framework\Logging\Logger;
|
use App\Framework\Logging\Logger;
|
||||||
|
use App\Framework\Logging\ValueObjects\LogContext;
|
||||||
use App\Framework\Performance\MemoryMonitor;
|
use App\Framework\Performance\MemoryMonitor;
|
||||||
use Generator;
|
use Generator;
|
||||||
use Throwable;
|
use Throwable;
|
||||||
@@ -129,7 +130,7 @@ final readonly class FileProcessor implements DiscoveryProcessor
|
|||||||
|
|
||||||
} catch (Throwable $e) {
|
} catch (Throwable $e) {
|
||||||
$this->logger?->warning(
|
$this->logger?->warning(
|
||||||
"Failed to process file {$file->getPath()->toString()}: {$e->getMessage()}"
|
"Failed to process file {$file->getPath()->toString()}: {$e->getMessage()}", LogContext::withException($e)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user