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. Δείτε Δοκιμές για πλήρεις εντολές.

Γενικά

  • Αγγλικά: Όλα τα σχόλια κώδικα, ονόματα μεταβλητών και τεκμηρίωση πρέπει να είναι στα Αγγλικά

  • Μεταφράσεις: Όλο το κείμενο που απευθύνεται στους χρήστες πρέπει να χρησιμοποιεί το σύστημα μετάφρασης (Vue I18n για το frontend, Symfony Translator για το backend)

  • Χωρίς μαγικές τιμές: Χρησιμοποιήστε σταθερές ή enums αντί για hardcoded τιμές

Τελευταία ενημέρωση

Ήταν χρήσιμο αυτό;