- 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
80 lines
2.8 KiB
PHP
80 lines
2.8 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
require_once __DIR__ . '/../../vendor/autoload.php';
|
|
|
|
use App\Framework\Mcp\ValueObjects\CodebaseQuery;
|
|
use App\Framework\Mcp\ValueObjects\CodebaseAnalysisResult;
|
|
use App\Framework\Mcp\ValueObjects\RouteInfo;
|
|
|
|
echo "=== CodebaseAnalyzer Value Objects Test ===\n\n";
|
|
|
|
// Test 1: CodebaseQuery Creation
|
|
echo "--- Test 1: CodebaseQuery Factory Methods ---\n";
|
|
$controllersQuery = CodebaseQuery::forControllers();
|
|
echo "✅ Controllers Query: " . json_encode($controllersQuery->toArray(), JSON_PRETTY_PRINT) . "\n\n";
|
|
|
|
$routesQuery = CodebaseQuery::forRoutes();
|
|
echo "✅ Routes Query: attribute_types = " . count($routesQuery->attributeTypes) . "\n\n";
|
|
|
|
$servicesQuery = CodebaseQuery::forServices();
|
|
echo "✅ Services Query: classNamePatterns = " . implode(', ', $servicesQuery->classNamePatterns) . "\n\n";
|
|
|
|
// Test 2: Custom Query
|
|
echo "--- Test 2: Custom CodebaseQuery ---\n";
|
|
$customQuery = CodebaseQuery::fromArray([
|
|
'patterns' => ['UserController', 'ProductService'],
|
|
'attribute_types' => ['App\Framework\Attributes\Route'],
|
|
'max_results' => 50,
|
|
'include_tests' => true,
|
|
]);
|
|
|
|
echo "✅ Custom Query Created:\n";
|
|
echo " - Patterns: " . implode(', ', $customQuery->patterns) . "\n";
|
|
echo " - Max Results: {$customQuery->maxResults}\n";
|
|
echo " - Include Tests: " . ($customQuery->includeTests ? 'Yes' : 'No') . "\n";
|
|
echo " - Has Attribute Search: " . ($customQuery->hasAttributeSearch() ? 'Yes' : 'No') . "\n\n";
|
|
|
|
// Test 3: CodebaseAnalysisResult Creation
|
|
echo "--- Test 3: CodebaseAnalysisResult Construction ---\n";
|
|
$sampleRoutes = [
|
|
new RouteInfo(
|
|
path: '/api/users',
|
|
httpMethod: 'GET',
|
|
controller: 'App\Application\Api\UserController',
|
|
action: 'listUsers'
|
|
),
|
|
new RouteInfo(
|
|
path: '/api/users/{id}',
|
|
httpMethod: 'GET',
|
|
controller: 'App\Application\Api\UserController',
|
|
action: 'getUser',
|
|
parameters: ['id']
|
|
),
|
|
];
|
|
|
|
$result = new CodebaseAnalysisResult(
|
|
routes: $sampleRoutes,
|
|
statistics: [
|
|
'total_routes' => count($sampleRoutes),
|
|
'execution_time_ms' => 42.5,
|
|
],
|
|
executionTimeMs: 42.5
|
|
);
|
|
|
|
echo "✅ Analysis Result Created:\n";
|
|
echo " - Total Components: {$result->getTotalComponents()}\n";
|
|
echo " - Routes Count: " . count($result->routes) . "\n";
|
|
echo " - Is Empty: " . ($result->isEmpty() ? 'Yes' : 'No') . "\n";
|
|
echo " - Execution Time: {$result->executionTimeMs}ms\n\n";
|
|
|
|
// Test 4: Result to Array Conversion
|
|
echo "--- Test 4: Result Serialization ---\n";
|
|
$arrayResult = $result->toArray();
|
|
echo "✅ Array keys: " . implode(', ', array_keys($arrayResult)) . "\n";
|
|
echo " - Routes in array: " . count($arrayResult['routes']) . "\n";
|
|
echo " - First route path: " . $arrayResult['routes'][0]['path'] . "\n\n";
|
|
|
|
echo "=== All Value Object Tests Completed Successfully ✅ ===\n";
|