Please find below my coding standards that I apply to all my Magento and PHP projects to assure a high level of code quality. The rules will be updated permanently.
- Based on Zend Coding Standards for PHP, PSR-1 and PSR-2
- Use Linux Linebreaks (\n)
- PHP code MUST NOT contain any character before the opening tag
- Uses spaces instead of tabs
- All checks of the PHPStorm EA Extended Plugin are successful
- PHPDoc Blocks are used whenever necessary and when they add explanation to the source code
- Settings that needs to be masqued/anonymized in staging or local development systems have been added to the anonymize script.
- SASS preprocessor is used whenever possible
- "wer floatet muss auch clearen"
- CSS Inline Styles must be avoided
- Apply Magento coding standards
- All SQL updates (i.e. also CMS updates) are done via Magento setup scripts
- Custom settings are configured in separate customer-specific tabs in System -> Configuration, not in Magento default tabs
- All 3rd-party extensions are installed via modman
- Favor observers over rewrites
- Customer-specific Extensions (starting with customer prefix, e.g. Vianetz_) are created whenever required.
- Extensions split the system into functional units that have a single responsibility and well-defined dependencies.
- A module should model (part of) a single bounded context of the domain.
- Modules are natural units for code-ownership as well. Teams can be responsible for one or more modules in the system.
- Magento Core modifications or modifications to the source code of 3rd-party extensions are strictly prohibited