mirror of
https://github.com/Egonex-AI/Understand-Anything.git
synced 2026-06-22 10:58:03 +08:00
Replace the TypeScript/JavaScript-biased analysis pipeline with a truly language-agnostic system. The core architecture was already language-neutral (graph schema, dashboard, search) — the bias lived in agent prompts, tree-sitter plugin, and language-lesson system. Core changes: - LanguageConfig + FrameworkConfig types with Zod validation - LanguageRegistry (12 languages) and FrameworkRegistry (10 frameworks) - Config-driven TreeSitterPlugin replacing hardcoded TS/JS grammars - PluginRegistry now delegates to LanguageRegistry for extension mapping - Language-lesson system uses config for display names and concepts Prompt system: - SKILL.md generalized: dynamic injection of language snippets and framework addendums instead of hardcoded if/else conditionals - 12 language prompt snippets (languages/*.md) with concepts, patterns, frameworks per language - 10 framework addendums (frameworks/*.md) with canonical file roles, edge patterns, architectural layers — Django/FastAPI/Flask preserved and split, plus React/Next.js/Express/Vue/Spring/Rails/Gin added - Extended entry points, directory patterns, and test patterns across all 12 language ecosystems in base prompts
2.5 KiB
2.5 KiB
PHP Language Prompt Snippet
Key Concepts
- Namespaces: Organize code and prevent naming collisions using backslash-delimited paths
- Traits: Horizontal code reuse mechanism for sharing methods across unrelated classes
- Type Declarations: Parameter, return, and property types (scalar, union, intersection types)
- Attributes (PHP 8+): Native metadata annotations replacing docblock-based configuration
- Enums (PHP 8.1+): First-class enumeration types with methods and interface implementation
- Fibers: Lightweight cooperative concurrency primitives for non-blocking I/O
- Closures/Anonymous Functions: First-class functions with explicit
usefor variable capture - Magic Methods: Special methods like
__construct,__get,__set,__callfor object behavior - Dependency Injection: Constructor injection managed by PSR-11 compatible containers
- Middleware: Request/response pipeline pattern central to modern PHP frameworks
Import Patterns
use Namespace\ClassName— import a class by its fully qualified nameuse Namespace\ClassName as Alias— import with an alias to avoid conflictsnamespace App\Http\Controllers— declare the current file's namespaceuse function Namespace\functionName— import a namespaced function
File Patterns
composer.json— dependency management and PSR-4 autoloading configurationindex.php— web application entry point (front controller)artisan— Laravel CLI entry point for commands and migrationsroutes/— route definition files (web.php, api.php in Laravel)- PSR-4 autoloading maps namespace prefixes to directory paths
Common Frameworks
- Laravel — Full-featured framework with Eloquent ORM, Blade templates, and queues
- Symfony — Component-based framework powering many PHP projects and libraries
- WordPress — CMS platform with hook-based plugin architecture
- Slim — Micro-framework for APIs and small applications
- CodeIgniter — Lightweight MVC framework with minimal configuration
Example Language Notes
Uses PHP 8 attributes
#[Route('/api/users')]for declarative route mapping on controller methods. Attributes replace the older docblock annotation pattern, providing native language support for metadata that tools can reflect upon.PSR-4 autoloading in
composer.jsonmapsApp\tosrc/, so the classApp\Http\Controllers\UserControllerloads fromsrc/Http/Controllers/UserController.php.