docs: consolidate documentation into organized structure

- Move 12 markdown files from root to docs/ subdirectories
- Organize documentation by category:
  • docs/troubleshooting/ (1 file)  - Technical troubleshooting guides
  • docs/deployment/      (4 files) - Deployment and security documentation
  • docs/guides/          (3 files) - Feature-specific guides
  • docs/planning/        (4 files) - Planning and improvement proposals

Root directory cleanup:
- Reduced from 16 to 4 markdown files in root
- Only essential project files remain:
  • CLAUDE.md (AI instructions)
  • README.md (Main project readme)
  • CLEANUP_PLAN.md (Current cleanup plan)
  • SRC_STRUCTURE_IMPROVEMENTS.md (Structure improvements)

This improves:
 Documentation discoverability
 Logical organization by purpose
 Clean root directory
 Better maintainability
This commit is contained in:
2025-10-05 11:05:04 +02:00
parent 887847dde6
commit 5050c7d73a
36686 changed files with 196456 additions and 12398919 deletions

View File

@@ -7,6 +7,7 @@ namespace App\Framework\Queue;
use App\Framework\Core\PathProvider;
use App\Framework\DI\Initializer;
use App\Framework\Logging\Logger;
use App\Framework\Logging\ValueObjects\LogContext;
use App\Framework\Redis\RedisConfig;
use App\Framework\Redis\RedisConnection;
@@ -21,6 +22,11 @@ final readonly class QueueInitializer
public function __invoke(Logger $logger): Queue
{
try {
// Check if Redis extension is available
if (! extension_loaded('redis')) {
throw new \RuntimeException('Redis extension not loaded');
}
$redisConfig = new RedisConfig(
host: 'redis',
port: 6379,
@@ -31,10 +37,11 @@ final readonly class QueueInitializer
return new RedisQueue($redisConnection, 'commands');
} catch (\Throwable $e) {
// Fallback to file queue if Redis is not available
$logger->warning("⚠️ Redis queue not available, falling back to file queue", [
'error' => $e->getMessage(),
]);
$path = $this->pathProvider->resolvePath('/src/Framework/CommandBus/storage/queue/');
$logger->info("Using file queue (Redis not available)", LogContext::withData([
'reason' => $e->getMessage(),
'fallback' => 'FileQueue',
]));
$path = $this->pathProvider->resolvePath('/storage/queue/');
return new FileQueue($path, logger: $logger);
}