diff --git a/gitnexus/src/core/ingestion/languages/php.ts b/gitnexus/src/core/ingestion/languages/php.ts index 7b93a97e9..caca85335 100644 --- a/gitnexus/src/core/ingestion/languages/php.ts +++ b/gitnexus/src/core/ingestion/languages/php.ts @@ -20,7 +20,7 @@ import { import { SupportedLanguages } from 'gitnexus-shared'; import { createClassExtractor } from '../class-extractors/generic.js'; import { phpClassConfig } from '../class-extractors/configs/php.js'; -import { defineLanguage } from '../language-provider.js'; +import { defineLanguage, type AstFrameworkPatternConfig } from '../language-provider.js'; import { typeConfig as phpConfig } from '../type-extractors/php.js'; import { phpExportChecker } from '../export-detection.js'; import { createImportResolver } from '../import-resolvers/resolver-factory.js'; @@ -250,6 +250,41 @@ function isPhpRouteFile(filePath: string): boolean { export const phpProvider = defineLanguage({ id: SupportedLanguages.PHP, extensions: ['.php', '.phtml', '.php3', '.php4', '.php5', '.php8'], + entryPointPatterns: [ + /Controller$/, + /^handle$/, + /^execute$/, + /^boot$/, + /^register$/, + /^__invoke$/, + /^(index|show|store|update|destroy|create|edit)$/, + /^(get|post|put|delete|patch)[A-Z]/, + /^run$/, + /^fire$/, + /^dispatch$/, + /Service$/, + /Repository$/, + /^find$/, + /^findAll$/, + /^save$/, + /^delete$/, + ], + astFrameworkPatterns: [ + { + framework: 'laravel', + entryPointMultiplier: 3.0, + reason: 'php-route-attribute', + patterns: [ + 'Route::get', + 'Route::post', + 'Route::put', + 'Route::delete', + 'Route::resource', + 'Route::apiResource', + '#[Route(', + ], + }, + ] satisfies AstFrameworkPatternConfig[], treeSitterQueries: PHP_QUERIES, typeConfig: phpConfig, exportChecker: phpExportChecker,