Collections/AGENTS.md
2025-11-11 17:00:02 +01:00

2.0 KiB

AGENT CODING STANDARDS

This project is a PHP MVC application using Composer, Twig, and FastRoute, running in an LXC container.

🛠️ Development Commands

Type Command Notes
Dependencies incus exec www composer install / incus exec www composer update Run from the host machine. Apache2 with PHP/Composer runs in the INCUS container 'www'. The folder ./ is shared with /var/www/localhost/ in the container, and port 80 is shared with the host. Use update after editing composer.json.
Linting N/A No dedicated tool. Adhere to PSR-12 standards.
Testing curl localhost No testing framework configured. Avoid adding tests until one is introduced.

📐 Code Style & Conventions

  1. Architecture: Strict MVC pattern. Logic in src/Controllers, data access in src/Models, views in templates/.
  2. Namespacing: Use App\ as the base namespace (PSR-4).
  3. Naming: Classes are PascalCase. Functions, methods, and variables are camelCase.
  4. Templating: Use Twig (.twig). All HTML rendering must be done via Twig.
  5. I18n: All user-facing strings must use App\Services\TranslationService (PHP) or {{ trans('ID') }} (Twig).
  6. Error Handling: Use PHP's native exception handling (try/catch). Log critical errors with error_log().
  7. Database: Access SQLite via App\Database\Database::getInstance(). Do not use direct new PDO().
  8. Imports: Use fully qualified class names or use statements at the top of the file.
  9. Security: Never introduce code that exposes or logs secrets and keys. Never commit secrets or keys to the repository.
  10. Types: Use type hints for function parameters and return types where possible.
  11. Formatting: Follow PSR-12 standards for code formatting.
  12. Comments: Do not add comments unless explicitly requested.
  13. Libraries: Only use libraries already in composer.json. Check composer.json before adding new dependencies.