Code Formatting
Για τη μορφοποίηση του κώδικα PHP του Open eClass ακολουθούμε τους προκαθορισμένους κανόνες του Netbeans για τον κώδικα PHP:
* Το indenting γίνεται μόνο με κενά, όχι με tab. * Το βασικό indenting είναι 4 στήλες. * Σε όλες τις δομές ελέγχου που περιέχουν μπλοκ, τα μπλοκ θα βρίσκονται μέσα σε άγκιστρα ακόμα κι αν περιέχουν μια μόνο εντολή. Δηλαδή:
if ($flag) { do_this(); } else { do_that(); do_something_else(); }
* Τα άγκιστρα των δομών ελέγχου ανοίγουν στο τέλος της αρχικής γραμμής και κλείνουν στην επόμενη γραμμή μετά την τελευταία εντολή κώδικα. Αυτό ισχύει και για τους ορισμούς συναρτήσεων και κλάσεων. Πχ:
function do_this($arg1, $arg2) { ... }
Ειδικότερα, όλοι οι κανόνες είναι οι εξης:
h3. Indentation
- Expand tabs to spaces
- “tab” size: 4 spaces
- no initial indentation
- continuation indentation of 8 spaces
- array declaration indentation of 4 spaces
h3. Braces on the same line
- class declaration
- method declaration
- if
- else
- elseif
- for
- foreach
- while
- do
- switch
- try
- catch
- use trait body
- … all other
h3. One blank line
- before namespace
- after namespace
- before use
- after use
- before class
- after class
- before fields
- between fields
- after fields
- before function
- after function
- after open tag
- before use trait
h3. No blank line
- after class header
- before class end
- before function end
- before close tag
h3. Blank spaces
before keywords
- while
- else
- elseif
- catch
before parentheses
- if
- elseif
- for
- foreach
- while
- catch
- switch
around operators
- binary
- ternary
- string concatenation
- key ⇒ value pairs
- assignment operators
before left braces
- class declaration
- method declaration
- if
- elseif
- else
- while
- for
- foreach
- do
- switch
- try
- catch
- use trait body
after comma
after semicolon
after type cast
after keyword
after short PHP tag
before close PHP tag
h3. Wrapping
always
- for
- foreach
- if
- while
- do
never
- extends / implements
- method parameters
- method call arguments
- chained method calls
- array initializer
- binary operators
- ternary operators
- assignment operators