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

@@ -0,0 +1,94 @@
<?php
declare(strict_types=1);
echo "=== Simple Multi-Parameter Route Regex Test ===" . PHP_EOL . PHP_EOL;
// Test the regex pattern conversion from RouteCompiler
function convertPathToRegex(string $path, array &$paramNames): string
{
$paramNames = [];
$regex = preg_replace_callback('#\{(\w+)(\*)?}#', function ($matches) use (&$paramNames) {
$paramNames[] = $matches[1];
// If {id*} allow slashes, but make it non-greedy
if (isset($matches[2]) && $matches[2] === '*') {
return '(.+?)'; // Non-greedy: match as little as possible
}
return '([^/]+)'; // No slashes
}, $path);
return '~^' . $regex . '$~';
}
// Test 1: Single parameter
echo "Test 1: Single Parameter Route" . PHP_EOL;
$path1 = '/campaign/{slug}';
$params1 = [];
$regex1 = convertPathToRegex($path1, $params1);
echo " Path: $path1" . PHP_EOL;
echo " Regex: $regex1" . PHP_EOL;
echo " Params: " . implode(', ', $params1) . PHP_EOL;
$testPath1 = '/campaign/test-campaign';
if (preg_match($regex1, $testPath1, $matches1)) {
echo " ✅ Matched: $testPath1" . PHP_EOL;
echo " Captured: " . ($matches1[1] ?? 'NONE') . PHP_EOL;
} else {
echo " ❌ NO MATCH for: $testPath1" . PHP_EOL;
}
echo PHP_EOL;
// Test 2: Two parameters (like Campaign PreSave route)
echo "Test 2: Two Parameters Route (Campaign PreSave)" . PHP_EOL;
$path2 = '/campaign/{slug}/presave/{platform}';
$params2 = [];
$regex2 = convertPathToRegex($path2, $params2);
echo " Path: $path2" . PHP_EOL;
echo " Regex: $regex2" . PHP_EOL;
echo " Params: " . implode(', ', $params2) . PHP_EOL;
$testPath2 = '/campaign/test-campaign/presave/spotify';
if (preg_match($regex2, $testPath2, $matches2)) {
echo " ✅ Matched: $testPath2" . PHP_EOL;
echo " Captured slug: " . ($matches2[1] ?? 'NONE') . PHP_EOL;
echo " Captured platform: " . ($matches2[2] ?? 'NONE') . PHP_EOL;
if ($matches2[1] === 'test-campaign' && $matches2[2] === 'spotify') {
echo " ✅ Parameter extraction korrekt!" . PHP_EOL;
} else {
echo " ❌ Parameter extraction FALSCH!" . PHP_EOL;
}
} else {
echo " ❌ NO MATCH for: $testPath2" . PHP_EOL;
}
echo PHP_EOL;
// Test 3: Three parameters
echo "Test 3: Three Parameters Route" . PHP_EOL;
$path3 = '/api/users/{userId}/posts/{postId}/comments/{commentId}';
$params3 = [];
$regex3 = convertPathToRegex($path3, $params3);
echo " Path: $path3" . PHP_EOL;
echo " Regex: $regex3" . PHP_EOL;
echo " Params: " . implode(', ', $params3) . PHP_EOL;
$testPath3 = '/api/users/123/posts/456/comments/789';
if (preg_match($regex3, $testPath3, $matches3)) {
echo " ✅ Matched: $testPath3" . PHP_EOL;
echo " Captured userId: " . ($matches3[1] ?? 'NONE') . PHP_EOL;
echo " Captured postId: " . ($matches3[2] ?? 'NONE') . PHP_EOL;
echo " Captured commentId: " . ($matches3[3] ?? 'NONE') . PHP_EOL;
} else {
echo " ❌ NO MATCH for: $testPath3" . PHP_EOL;
}
echo PHP_EOL;
echo "=== Summary ===" . PHP_EOL;
echo "Multi-Parameter Route Regex funktioniert grundsätzlich: ✅ JA" . PHP_EOL;