InfrastructureServiceProvider.php
- Pfad:
src/ServiceProvider/InfrastructureServiceProvider.php
- Namespace: ServiceProvider
- Zeilen: 183 | Größe: 9,698 Bytes
- Geändert: 2025-12-30 03:15:34 | Gescannt: 2025-12-31 10:22:15
Code Hygiene Score: 72
- Dependencies: 0 (25%)
- LOC: 83 (20%)
- Methods: 100 (20%)
- Secrets: 100 (15%)
- Classes: 100 (10%)
- Magic Numbers: 100 (10%)
Issues 1
| Zeile |
Typ |
Beschreibung |
| - |
coupling |
Klasse hat 44 Dependencies (max: 15) |
Dependencies 45
- implements ServiceProvider\ServiceProviderInterface
- use Domain\Repository\ChunkExplorerRepositoryInterface
- use Domain\Repository\ChunkTaxonomyRepositoryInterface
- use Domain\Repository\CodeQualityRepositoryInterface
- use Domain\Repository\ContractRepositoryInterface
- use Domain\Repository\DependencyGraphRepositoryInterface
- use Domain\Repository\DokumentationRepositoryInterface
- use Domain\Repository\DokumentExplorerRepositoryInterface
- use Domain\Repository\EntityTaxonomyRepositoryInterface
- use Domain\Repository\FileAnalysisRepositoryInterface
- use Domain\Repository\FileBackupRepositoryInterface
- use Domain\Repository\KiProtokollRepositoryInterface
- use Domain\Repository\SeiteExplorerRepositoryInterface
- use Domain\Service\CodeScannerInterface
- use Domain\Service\SearchServiceInterface
- use Framework\Container
- use Infrastructure\Audit\AuditService
- use Infrastructure\CodeAnalysis\CodeQualityChecker
- use Infrastructure\CodeAnalysis\CodeScanner
- use Infrastructure\CodeAnalysis\JsFileParser
- use Infrastructure\CodeAnalysis\PhpFileParser
- use Infrastructure\CodeAnalysis\PythonFileParser
- use Infrastructure\Docs\ChunkAnalysisService
- use Infrastructure\Docs\ChunkAnalyzer
- use Infrastructure\Docs\ChunkDataRepository
- use Infrastructure\Docs\ChunkingService
- use Infrastructure\Docs\ChunkSearchService
- use Infrastructure\Docs\ChunkSyncService
- use Infrastructure\Docs\HybridSearchService
- use Infrastructure\Formatter\ApiResponseFormatter
- use Infrastructure\Logging\AuditLogger
- use Infrastructure\Logging\KiProtokollService
- use Infrastructure\Persistence\ChunkExplorerRepository
- use Infrastructure\Persistence\ChunkTaxonomyRepository
- use Infrastructure\Persistence\CodeQualityRepository
- use Infrastructure\Persistence\ContractRepository
- use Infrastructure\Persistence\DependencyGraphRepository
- use Infrastructure\Persistence\DokumentationRepository
- use Infrastructure\Persistence\DokumentExplorerRepository
- use Infrastructure\Persistence\EntityTaxonomyRepository
- use Infrastructure\Persistence\FileAnalysisRepository
- use Infrastructure\Persistence\FileBackupRepository
- use Infrastructure\Persistence\KiProtokollRepository
- use Infrastructure\Persistence\SeiteExplorerRepository
- use Infrastructure\Search\ContentSearchService
Klassen 75
-
InfrastructureServiceProvider
class
Zeile 57
-
Container
class
Zeile 62
-
Container
class
Zeile 63
-
Container
class
Zeile 64
-
Container
class
Zeile 65
-
Container
class
Zeile 66
-
Container
class
Zeile 67
-
Container
class
Zeile 68
-
Container
class
Zeile 69
-
Container
class
Zeile 70
-
Container
class
Zeile 71
-
Container
class
Zeile 74
-
Container
class
Zeile 75
-
Container
class
Zeile 78
-
set
class
Zeile 78
-
Container
class
Zeile 79
-
set
class
Zeile 79
-
Container
class
Zeile 80
-
set
class
Zeile 80
-
Container
class
Zeile 81
-
set
class
Zeile 81
-
Container
class
Zeile 82
-
set
class
Zeile 82
-
Container
class
Zeile 83
-
set
class
Zeile 83
-
Container
class
Zeile 84
-
set
class
Zeile 84
-
Container
class
Zeile 85
-
set
class
Zeile 85
-
Container
class
Zeile 86
-
set
class
Zeile 86
-
Container
class
Zeile 87
-
set
class
Zeile 87
-
Container
class
Zeile 88
-
set
class
Zeile 88
-
Container
class
Zeile 89
-
set
class
Zeile 89
-
PhpFileParser
class
Zeile 92
-
PythonFileParser
class
Zeile 93
-
JsFileParser
class
Zeile 94
-
CodeQualityChecker
class
Zeile 95
-
Container
class
Zeile 97
-
get
class
Zeile 99
-
get
class
Zeile 100
-
get
class
Zeile 101
-
get
class
Zeile 102
-
get
class
Zeile 103
-
set
class
Zeile 104
-
Container
class
Zeile 108
-
set
class
Zeile 108
-
Container
class
Zeile 111
-
get
class
Zeile 113
-
set
class
Zeile 114
-
Container
class
Zeile 118
-
get
class
Zeile 121
-
set
class
Zeile 122
-
Container
class
Zeile 126
-
get
class
Zeile 129
-
set
class
Zeile 130
-
Container
class
Zeile 135
-
set
class
Zeile 138
-
Container
class
Zeile 143
-
set
class
Zeile 144
-
Container
class
Zeile 148
-
Container
class
Zeile 153
-
set
class
Zeile 154
-
Container
class
Zeile 158
-
get
class
Zeile 160
-
set
class
Zeile 161
-
Container
class
Zeile 165
-
set
class
Zeile 168
-
Container
class
Zeile 173
-
Container
class
Zeile 174
-
ApiResponseFormatter
class
Zeile 175
-
Container
class
Zeile 178
Funktionen 1
-
register()
public
Zeile 59
Verwendet von 1
Versionen 13
-
v13
2025-12-29 08:48 | claude-code-hook | modified
Claude Code Pre-Hook Backup vor Edit-Operation
-
v12
2025-12-29 08:47 | claude-code-hook | modified
Claude Code Pre-Hook Backup vor Edit-Operation
-
v11
2025-12-28 14:26 | claude-code-hook | modified
Claude Code Pre-Hook Backup vor Edit-Operation
-
v10
2025-12-28 14:26 | claude-code-hook | modified
Claude Code Pre-Hook Backup vor Edit-Operation
-
v9
2025-12-28 14:24 | claude-code-hook | modified
Claude Code Pre-Hook Backup vor Edit-Operation
-
v8
2025-12-25 20:08 | claude-code-hook | modified
Claude Code Pre-Hook Backup vor Edit-Operation
-
v7
2025-12-25 20:08 | claude-code-hook | modified
Claude Code Pre-Hook Backup vor Edit-Operation
-
v6
2025-12-25 20:08 | claude-code-hook | modified
Claude Code Pre-Hook Backup vor Edit-Operation
-
v5
2025-12-25 20:08 | claude-code-hook | modified
Claude Code Pre-Hook Backup vor Edit-Operation
-
v4
2025-12-25 17:50 | claude-code-hook | modified
Claude Code Pre-Hook Backup vor Edit-Operation
-
v3
2025-12-25 17:49 | claude-code-hook | modified
Claude Code Pre-Hook Backup vor Edit-Operation
-
v2
2025-12-25 17:01 | claude-code-hook | modified
Claude Code Pre-Hook Backup vor Edit-Operation
-
v1
2025-12-25 17:01 | claude-code-hook | modified
Claude Code Pre-Hook Backup vor Edit-Operation
Code
<?php
declare(strict_types=1);
// @responsibility: Register Infrastructure services in DI container
namespace ServiceProvider;
use Domain\Repository\ChunkExplorerRepositoryInterface;
use Domain\Repository\ChunkTaxonomyRepositoryInterface;
use Domain\Repository\CodeQualityRepositoryInterface;
use Domain\Repository\ContractRepositoryInterface;
use Domain\Repository\DependencyGraphRepositoryInterface;
use Domain\Repository\DokumentationRepositoryInterface;
use Domain\Repository\DokumentExplorerRepositoryInterface;
use Domain\Repository\EntityTaxonomyRepositoryInterface;
use Domain\Repository\FileAnalysisRepositoryInterface;
use Domain\Repository\FileBackupRepositoryInterface;
use Domain\Repository\KiProtokollRepositoryInterface;
use Domain\Repository\SeiteExplorerRepositoryInterface;
use Domain\Service\CodeScannerInterface;
use Domain\Service\SearchServiceInterface;
use Framework\Container;
use Infrastructure\Audit\AuditService;
use Infrastructure\CodeAnalysis\CodeQualityChecker;
use Infrastructure\CodeAnalysis\CodeScanner;
use Infrastructure\CodeAnalysis\JsFileParser;
use Infrastructure\CodeAnalysis\PhpFileParser;
use Infrastructure\CodeAnalysis\PythonFileParser;
use Infrastructure\Docs\ChunkAnalysisService;
use Infrastructure\Docs\ChunkAnalyzer;
use Infrastructure\Docs\ChunkDataRepository;
use Infrastructure\Docs\ChunkingService;
use Infrastructure\Docs\ChunkSearchService;
use Infrastructure\Docs\ChunkSyncService;
use Infrastructure\Docs\HybridSearchService;
use Infrastructure\Formatter\ApiResponseFormatter;
use Infrastructure\Logging\AuditLogger;
use Infrastructure\Logging\KiProtokollService;
use Infrastructure\Persistence\ChunkExplorerRepository;
use Infrastructure\Persistence\ChunkTaxonomyRepository;
use Infrastructure\Persistence\CodeQualityRepository;
use Infrastructure\Persistence\ContractRepository;
use Infrastructure\Persistence\DependencyGraphRepository;
use Infrastructure\Persistence\DokumentationRepository;
use Infrastructure\Persistence\DokumentExplorerRepository;
use Infrastructure\Persistence\EntityTaxonomyRepository;
use Infrastructure\Persistence\FileAnalysisRepository;
use Infrastructure\Persistence\FileBackupRepository;
use Infrastructure\Persistence\KiProtokollRepository;
use Infrastructure\Persistence\SeiteExplorerRepository;
use Infrastructure\Search\ContentSearchService;
/**
* InfrastructureServiceProvider registers infrastructure and technical services.
*/
final class InfrastructureServiceProvider implements ServiceProviderInterface
{
public function register(Container $container): void
{
// Repositories
$container->set(DokumentExplorerRepository::class, fn (Container $c) => new DokumentExplorerRepository($c->get('pdo.dev')));
$container->set(SeiteExplorerRepository::class, fn (Container $c) => new SeiteExplorerRepository($c->get('pdo.dev')));
$container->set(ChunkExplorerRepository::class, fn (Container $c) => new ChunkExplorerRepository($c->get('pdo.dev')));
$container->set(DokumentationRepository::class, fn (Container $c) => new DokumentationRepository($c->get('pdo.dev')));
$container->set(FileBackupRepository::class, fn (Container $c) => new FileBackupRepository($c->get('pdo.dev')));
$container->set(ContractRepository::class, fn (Container $c) => new ContractRepository($c->get('pdo.dev')));
$container->set(KiProtokollRepository::class, fn (Container $c) => new KiProtokollRepository($c->get('pdo.dev')));
$container->set(FileAnalysisRepository::class, fn (Container $c) => new FileAnalysisRepository($c->get('pdo.dev')));
$container->set(DependencyGraphRepository::class, fn (Container $c) => new DependencyGraphRepository($c->get('pdo.dev')));
$container->set(CodeQualityRepository::class, fn (Container $c) => new CodeQualityRepository($c->get('pdo.dev')));
// Taxonomy Mapping Repositories (ki_content database)
$container->set(ChunkTaxonomyRepository::class, fn (Container $c) => new ChunkTaxonomyRepository($c->get('pdo.content')));
$container->set(EntityTaxonomyRepository::class, fn (Container $c) => new EntityTaxonomyRepository($c->get('pdo.content')));
// Interface aliases
$container->set(DokumentationRepositoryInterface::class, fn (Container $c) => $c->get(DokumentationRepository::class));
$container->set(DokumentExplorerRepositoryInterface::class, fn (Container $c) => $c->get(DokumentExplorerRepository::class));
$container->set(SeiteExplorerRepositoryInterface::class, fn (Container $c) => $c->get(SeiteExplorerRepository::class));
$container->set(ChunkExplorerRepositoryInterface::class, fn (Container $c) => $c->get(ChunkExplorerRepository::class));
$container->set(FileAnalysisRepositoryInterface::class, fn (Container $c) => $c->get(FileAnalysisRepository::class));
$container->set(DependencyGraphRepositoryInterface::class, fn (Container $c) => $c->get(DependencyGraphRepository::class));
$container->set(CodeQualityRepositoryInterface::class, fn (Container $c) => $c->get(CodeQualityRepository::class));
$container->set(FileBackupRepositoryInterface::class, fn (Container $c) => $c->get(FileBackupRepository::class));
$container->set(KiProtokollRepositoryInterface::class, fn (Container $c) => $c->get(KiProtokollRepository::class));
$container->set(ContractRepositoryInterface::class, fn (Container $c) => $c->get(ContractRepository::class));
$container->set(ChunkTaxonomyRepositoryInterface::class, fn (Container $c) => $c->get(ChunkTaxonomyRepository::class));
$container->set(EntityTaxonomyRepositoryInterface::class, fn (Container $c) => $c->get(EntityTaxonomyRepository::class));
// Code Analysis
$container->set(PhpFileParser::class, fn () => new PhpFileParser());
$container->set(PythonFileParser::class, fn () => new PythonFileParser());
$container->set(JsFileParser::class, fn () => new JsFileParser());
$container->set(CodeQualityChecker::class, fn () => new CodeQualityChecker());
$container->set(CodeScanner::class, function (Container $c) {
return new CodeScanner(
$c->get(FileAnalysisRepositoryInterface::class),
$c->get(CodeQualityRepositoryInterface::class),
$c->get(PhpFileParser::class),
$c->get(PythonFileParser::class),
$c->get(JsFileParser::class),
$c->get(CodeQualityChecker::class)
);
});
$container->set(CodeScannerInterface::class, fn (Container $c) => $c->get(CodeScanner::class));
// Documentation Services
$container->set(ChunkSearchService::class, function (Container $c) {
return new ChunkSearchService(
$c->get(\Infrastructure\AI\QdrantClient::class),
$c->get(\Infrastructure\AI\OllamaService::class)
);
});
$container->set(ChunkSyncService::class, function (Container $c) {
return new ChunkSyncService(
$c->get('pdo.dev'),
$c->get(\Infrastructure\AI\OllamaService::class),
$c->get(\Infrastructure\AI\QdrantClient::class)
);
});
$container->set(HybridSearchService::class, function (Container $c) {
return new HybridSearchService(
$c->get('pdo.dev'),
$c->get(\Infrastructure\AI\OllamaService::class),
$c->get(\Infrastructure\AI\QdrantClient::class)
);
});
// ContentSearchService for ki_content (semantic search)
$container->set(ContentSearchService::class, function (Container $c) {
return new ContentSearchService(
$c->get('pdo.content'),
$c->get(\Infrastructure\AI\OllamaService::class)
);
});
// Interface binding for SearchService (default: ContentSearchService for semantic search)
$container->set(SearchServiceInterface::class, function (Container $c) {
return $c->get(ContentSearchService::class);
});
// ChunkDataRepository for chunk database operations
$container->set(ChunkDataRepository::class, function (Container $c) {
return new ChunkDataRepository($c->get('pdo.dev'));
});
// ChunkAnalyzer for LLM-based analysis
$container->set(ChunkAnalyzer::class, function (Container $c) {
return new ChunkAnalyzer($c->get(\Infrastructure\AI\OllamaService::class));
});
// ChunkAnalysisService orchestrates the analysis
$container->set(ChunkAnalysisService::class, function (Container $c) {
return new ChunkAnalysisService(
$c->get(ChunkDataRepository::class),
$c->get(ChunkAnalyzer::class)
);
});
$container->set(ChunkingService::class, function (Container $c) {
return new ChunkingService(
$c->get('pdo.dev'),
$c->get(DokumentationRepository::class)
);
});
// Application Services
$container->set(AuditLogger::class, fn (Container $c) => new AuditLogger($c->get('pdo.dev')));
$container->set(AuditService::class, fn (Container $c) => new AuditService($c->get('pdo.dev')));
$container->set(ApiResponseFormatter::class, fn () => new ApiResponseFormatter());
// KI-Protokoll Service (crash-safe logging wrapper)
$container->set(KiProtokollService::class, fn (Container $c) => new KiProtokollService(
$c->get(KiProtokollRepositoryInterface::class)
));
}
}