Skip to content

Update CODING_STANDARDS for the acronym casing RFC #14169

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 2 commits into from
May 8, 2024
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
66 changes: 39 additions & 27 deletions CODING_STANDARDS.md
Original file line number Diff line number Diff line change
Expand Up @@ -152,62 +152,74 @@ rewritten to comply with these rules.
1. Method names follow the *studlyCaps* (also referred to as *bumpy case* or
*camel caps*) naming convention, with care taken to minimize the letter
count. The initial letter of the name is lowercase, and each letter that
starts a new `word` is capitalized:
starts a new "word" is capitalized.

Good:
1. Class names should be descriptive nouns in *PascalCase* and as short as
possible. Each word in the class name should start with a capital letter,
without underscore delimiters. The class name should be prefixed with the
name of the "parent set" (e.g. the name of the extension) if no namespaces
are used.

1. Abbreviations and acronyms as well as initialisms should be avoided wherever
possible, unless they are much more widely used than the long form (e.g. HTTP
or URL). Abbreviations, acronyms, and initialisms should be treated like
regular words, thus they should be written with an uppercase first character,
followed by lowercase characters.

1. Diverging from this policy is allowed to keep internal consistency within a
single extension, if the name follows an established, language-agnostic
standard, or for other reasons, if those reasons are properly justified
and voted on as part of the RFC process.


Good method names:

```php
connect()
getData()
buildSomeWidget()
performHttpRequest()
```

Bad:
Bad method names:

```php
get_Data()
buildsomewidget()
getI()
performHTTPRequest()
```

1. Class names should be descriptive nouns in *PascalCase* and as short as
possible. Each word in the class name should start with a capital letter,
without underscore delimiters. The class name should be prefixed with the
name of the "parent set" (e.g. the name of the extension) if no namespaces
are used. Abbreviations and acronyms as well as initialisms should be
avoided wherever possible, unless they are much more widely used than the
long form (e.g. HTTP or URL). Abbreviations start with a capital letter
followed by lowercase letters, whereas acronyms and initialisms are written
according to their standard notation. Usage of acronyms and initialisms is
not allowed if they are not widely adopted and recognized as such.

Good:
Good class names:

```php
Curl
CurlResponse
HTTPStatusCode
URL
BTreeMap // B-tree Map
Id // Identifier
ID // Identity Document
HttpStatusCode
Url
BtreeMap // B-tree Map
UserId // User Identifier
Char // Character
Intl // Internationalization
Radar // Radio Detecting and Ranging
Ssl\Certificate
Ssl\Crl // Certificate Revocation List
Ssl\CrlUrl
```

Bad:
Bad class names:

```php
curl
curl_response
HttpStatusCode
Url
BtreeMap
ID // Identifier
HTTPStatusCode
URL
BTreeMap
UserID // User Identifier
CHAR
INTL
RADAR // Radio Detecting and Ranging
SSL\Certificate
SSL\CRL
SSL\CRLURL
```

## Internal function naming conventions
Expand Down