- Data structures representing collections should be array-accessible and/or iterable
- Data structures representing individual items should use getter functions
- Associative arrays should only be used for simple key-value-pairs
- Use built-in functions rather than operators to manipulate array contents
- Static classes should only be used when truly stateless
- Private methods should be preferred over anonymous functions where appropriate
- Anonymous functions should never exceed 5-10 lines