Coding Conventions
Last updated
Was this helpful?
Standard: PSR-12 coding style
Type declarations: Use PHP 8.3 type declarations (parameter types, return types, property types)
Strict types: All PHP files should declare strict_types=1
Namespaces: Follow PSR-4 autoloading (e.g., Chamilo\CoreBundle\Entity\User)
Symfony standards: Follow Symfony's coding standards and best practices
ESLint + Prettier: Code is linted with ESLint and formatted with Prettier; configuration is in eslint.config.mjs at the project root. prettier-plugin-tailwindcss is also enabled for automatic Tailwind class sorting.
Composition API: Use Vue 3's <script setup> syntax for new components
TypeScript: TypeScript is supported; use it for type-safe code
Tailwind CSS: Prefer utility classes over custom CSS
BEM naming: When custom CSS is needed, use BEM naming convention
SCSS: Use SCSS for complex stylesheets
The project ships configuration for three additional tools:
PHPStan
phpstan.neon
Static analysis (level 5, scans src/ and test directories)
Psalm
psalm.xml
Second static analysis pass; runs in CI on every push
Rector
rector.php
Automated code transformations and upgrades
Run them via composer shortcuts: composer phpstan, composer psalm. See Testing for full commands.
English: All code comments, variable names, and documentation should be in English
Translations: All user-facing text should use the translation system (Vue I18n for frontend, Symfony Translator for backend)
No magic values: Use constants or enums instead of hardcoded values
Last updated
Was this helpful?
Was this helpful?