update project
This commit is contained in:
@@ -0,0 +1,30 @@
|
||||
<?php declare(strict_types=1);
|
||||
|
||||
namespace App\Support\Architecture;
|
||||
|
||||
final class DependencyMapGenerator
|
||||
{
|
||||
public function generate(): array
|
||||
{
|
||||
$finder = new ArchitectureFileFinder();
|
||||
$files = $finder->phpFiles(['app/Domain', 'app/Http/Controllers', 'app/Providers']);
|
||||
$map = [];
|
||||
|
||||
foreach ($files as $file) {
|
||||
$relative = str_replace(base_path().'/', '', $file);
|
||||
$contents = file_get_contents($file) ?: '';
|
||||
preg_match_all('/^use\s+([^;]+);/m', $contents, $matches);
|
||||
$map[$relative] = array_values(array_unique($matches[1] ?? []));
|
||||
}
|
||||
|
||||
return [
|
||||
'generated_at' => now()->toISOString(),
|
||||
'files' => $map,
|
||||
'forbidden_dependency_examples' => [
|
||||
'SchoolCore -> IslamicSundaySchool',
|
||||
'Domain services -> Illuminate\\Http\\Request',
|
||||
'Controllers -> provider SDKs',
|
||||
],
|
||||
];
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user