Skip to content

Casings in PSR (PHP Standard Recommendations)

While programming, everyone comes across these types of casings while defining their variables, constants, functions, classes, etc.

1. lowercase — All letters in lowercase.
2. Capitalized — Word’s first letter is upper case, rest are lower case.
3. UPPERCASE — All letters in upper case, multiple words are separated by an underscore
4. camelCase — First word in lower case, all proceeding words have first letter in upper case. Words have no space between them.
5. PascalCase (or StudlyCaps) — All words have first letter capitalized. Words have no space between them.
6. snake_case — All words in lower case, separated by an underscore.
7. kebab-case — All words in lower case, separated by a hyphen.
8. Train-Case — All words in Capitalized case, separated by a hyphen.

Most programmers are aware of these casing styles. But usually, confusion comes in which one to use in a particular case. Let’s see how PSR (PHP Standard Recommendations) defines use of casings in PHP

  1. ClassNames should use PascalCase e.g. Student, StudentModel, StudentController.
  2. Constants should use UPPERCASE e.g. LENGTH, CHAR_LENGTH
  3. Function names should be in camelCase e.g. getStudents, getStudentName
  4. Variable names don’t have any recommendations as per PSR.
    but IMHO, they look much better in camelCase e.g. $studentCount, $oldStudent which is the de-facto standard in core code of mostly popular bundles and frameworks.
  5. Array indexes are also not covered by PSR but are more understandable in snake_case e.g. $student[‘first_name’] in my IMHO. kebab-case or Train-case should be avoided because these can pose unnecessary complications in templating files as these cases are also used in HTML, e.g. kebab-case is used for CSS class names.

Which case should be used with PHP8’s named argument in your opinion?

Published inBlog