Backup #889
| ID | 889 |
| Dateipfad | /var/www/dev.campus.systemische-tools.de/src/Controller/CodeAnalysisController.php |
| Version | 4 |
| Typ |
modified |
| Größe | 2.9 KB |
| Hash | 07a752e6aaff5cdff93df8b4e7b2bcd98d1422207a5c41c2a0aa0621fc32a83b |
| Datum | 2025-12-23 15:35:39 |
| Geändert von | claude-code-hook |
| Grund | Claude Code Pre-Hook Backup vor Edit-Operation |
| Datei existiert |
Ja
|
Dateiinhalt
<?php
declare(strict_types=1);
namespace Controller;
// @responsibility: HTTP-Endpunkte für Code-Analyse
use Framework\Controller;
use UseCases\CodeAnalysis\GetCodeAnalysisUseCase;
class CodeAnalysisController extends Controller
{
public function __construct(
private GetCodeAnalysisUseCase $useCase
) {
}
public function index(): void
{
$filters = array_filter([
'directory' => $this->getString('directory'),
'namespace' => $this->getString('namespace'),
'extension' => $this->getString('extension'),
'search' => $this->getString('search'),
'has_classes' => $this->getString('has_classes'),
], fn ($v) => $v !== '');
$this->view('docs.code', [
'title' => 'Code-Analyse',
'stats' => $this->useCase->getStatistics(),
'files' => $this->useCase->execute($filters, 200, 0),
'filterOptions' => $this->useCase->getFilterOptions(),
'currentFilters' => $filters,
]);
}
public function show(string $id): void
{
$file = $this->useCase->findById((int) $id);
if ($file === null) {
$this->notFound('Datei nicht gefunden');
}
$classes = json_decode($file['classes'] ?? '[]', true);
$functions = json_decode($file['functions'] ?? '[]', true);
$uses = json_decode($file['uses'] ?? '[]', true);
$implements = json_decode($file['implements_interfaces'] ?? '[]', true);
$traits = json_decode($file['traits_used'] ?? '[]', true);
$constructorDeps = json_decode($file['constructor_deps'] ?? '[]', true);
// Build FQCN for reverse lookup
$dependents = [];
if (!empty($classes)) {
$namespace = $file['namespace'] ?? '';
$className = $classes[0]['name'];
$fqcn = $namespace ? $namespace . '\\' . $className : $className;
$dependents = $this->useCase->findDependents($fqcn);
}
$this->view('docs.code-show', [
'title' => $file['file_name'],
'file' => $file,
'classes' => $classes,
'functions' => $functions,
'uses' => $uses,
'extendsClass' => $file['extends_class'],
'implements' => $implements,
'traits' => $traits,
'constructorDeps' => $constructorDeps,
'dependents' => $dependents,
]);
}
public function scan(): void
{
$this->requireCsrf();
$result = $this->useCase->runScan('web');
$this->json([
'success' => true,
'scan_id' => $result['scan_id'],
'files_scanned' => $result['files_scanned'],
'files_with_errors' => $result['files_with_errors'],
'total_classes' => $result['total_classes'],
'total_functions' => $result['total_functions'],
'duration_ms' => $result['duration_ms'],
]);
}
}
Vollständig herunterladen
Aktionen
Andere Versionen dieser Datei
| ID |
Version |
Typ |
Größe |
Datum |
| 1993 |
14 |
modified |
7.3 KB |
2025-12-28 09:41 |
| 1355 |
13 |
modified |
7.3 KB |
2025-12-25 16:31 |
| 1269 |
12 |
modified |
7.3 KB |
2025-12-25 12:51 |
| 952 |
11 |
modified |
8.0 KB |
2025-12-23 22:08 |
| 947 |
10 |
modified |
8.0 KB |
2025-12-23 22:06 |
| 946 |
9 |
modified |
7.6 KB |
2025-12-23 22:06 |
| 944 |
8 |
modified |
7.6 KB |
2025-12-23 22:00 |
| 943 |
7 |
modified |
7.2 KB |
2025-12-23 21:59 |
| 942 |
6 |
modified |
7.1 KB |
2025-12-23 21:59 |
| 891 |
5 |
modified |
6.8 KB |
2025-12-23 15:40 |
| 889 |
4 |
modified |
2.9 KB |
2025-12-23 15:35 |
| 885 |
3 |
modified |
2.6 KB |
2025-12-23 15:27 |
| 882 |
2 |
modified |
2.1 KB |
2025-12-23 15:21 |
| 876 |
1 |
modified |
2.1 KB |
2025-12-23 09:35 |
← Zurück zur Übersicht