> For the complete documentation index, see [llms.txt](https://docs.chamilo.org/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.chamilo.org/2.x/el/odigos-programmatisti/developer-guide/contributing/coding-conventions.md).

# Coding Conventions

## PHP

* **Πρότυπο**: PSR-12 στυλ κωδικοποίησης
* **Δηλώσεις τύπων**: Χρησιμοποιήστε δηλώσεις τύπων PHP 8.2 (τύποι παραμέτρων, τύποι επιστροφής, τύποι ιδιοτήτων)
* **Αυστηροί τύποι**: Όλα τα αρχεία PHP πρέπει να δηλώνουν `strict_types=1`
* **Χώροι ονομάτων**: Ακολουθήστε αυτόματο φόρτωμα PSR-4 (π.χ., `Chamilo\CoreBundle\Entity\User`)
* **Πρότυπα Symfony**: Ακολουθήστε τα πρότυπα κωδικοποίησης και τις βέλτιστες πρακτικές του Symfony

## JavaScript/Vue

* **ESLint + Prettier**: Ο κώδικας ελέγχεται με ESLint και διαμορφώνεται με Prettier· η διαμόρφωση βρίσκεται στο `eslint.config.mjs` στη ρίζα του έργου. Το `prettier-plugin-tailwindcss` είναι επίσης ενεργοποιημένο για αυτόματη ταξινόμηση Tailwind κλάσεων.
* **Composition API**: Χρησιμοποιήστε τη σύνταξη `<script setup>` του Vue 3 για νέα στοιχεία
* **TypeScript**: Το TypeScript υποστηρίζεται· χρησιμοποιήστε το για κώδικα ασφαλούς ως προς τους τύπους

## CSS

* **Tailwind CSS**: Προτιμήστε κλάσεις χρησιμότητας αντί για προσαρμοσμένο CSS
* **Ονοματολογία BEM**: Όταν απαιτείται προσαρμοσμένο CSS, χρησιμοποιήστε τη σύμβαση ονοματολογίας BEM
* **SCSS**: Χρησιμοποιήστε SCSS για σύνθετα φύλλα στυλ

## Εργαλεία Στατικής Ανάλυσης και Αναδιάρθρωσης PHP

Το έργο περιλαμβάνει διαμόρφωση για τρία επιπλέον εργαλεία:

| Εργαλείο    | Αρχείο διαμόρφωσης | Σκοπός                                                             |
| ----------- | ------------------ | ------------------------------------------------------------------ |
| **PHPStan** | `phpstan.neon`     | Στατική ανάλυση (επίπεδο 5, σαρώνει `src/` και καταλόγους δοκιμών) |
| **Psalm**   | `psalm.xml`        | Δεύτερος κύκλος στατικής ανάλυσης· εκτελείται σε CI σε κάθε push   |
| **Rector**  | `rector.php`       | Αυτοματοποιημένες μετασχηματισμοί και αναβαθμίσεις κώδικα          |

Εκτελέστε τα μέσω συντομευμένων εντολών composer: `composer phpstan`, `composer psalm`. Δείτε [Δοκιμές](/2.x/el/odigos-programmatisti/developer-guide/contributing/testing.md) για πλήρεις εντολές.

## Γενικά

* **Αγγλικά**: Όλα τα σχόλια κώδικα, ονόματα μεταβλητών και τεκμηρίωση πρέπει να είναι στα Αγγλικά
* **Μεταφράσεις**: Όλο το κείμενο που απευθύνεται στους χρήστες πρέπει να χρησιμοποιεί το σύστημα μετάφρασης (Vue I18n για το frontend, Symfony Translator για το backend)
* **Χωρίς μαγικές τιμές**: Χρησιμοποιήστε σταθερές ή enums αντί για hardcoded τιμές
