Backup #885

ID885
Dateipfad/var/www/dev.campus.systemische-tools.de/src/Controller/CodeAnalysisController.php
Version3
Typ modified
Größe2.6 KB
Hash2ca3d29bc75e1c10b05a4bf8786f875230b7a33cf97604b704d3ec0f4f7b0b9f
Datum2025-12-23 15:27:40
Geändert vonclaude-code-hook
GrundClaude 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);

        $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,
        ]);
    }

    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

Herunterladen

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