How static PHP analyzer changed the way I look at code
Let me introduce you to the world of static PHP code analyzers. I'd like to show you which tools exists, how to use them and how they help you to improve your code quality.
MEASUREMENT Names Variable names Not too short Not too long lowerCamelCase Method names Not too short Usage of __construct method isX() or hasY() for bool return type
MEASUREMENT Lengths Method size too long Split into multiple small pieces Parameter list too long Group parameters in new objects (Public) field count to high Redesign objects and group fields
CODE Structure I Commented out code Remove! Too many return statements Return early but only once Prevent superfluous return variables Prevent superfluous else branch Too many return type possibilities Stick to one return type
COMPLEXITY Cognitive Complexity How hard is your code to understand Each control structure increases the complexity Logical operators increase the count Ternary and null coalescing operator increase the count Merge nested if statements Refactor and use helper functions
CONCLUSION The way I changed I pay more attention in naming variables and methods I refractor conditions to own functions I prevent multiple return points I use exactly one return type I started to think about my code before I write it Benefits My classes and concepts are more structured My code is more readable My code is better testable
WARNING Stop overengineering Maybe not possible to remove all remarks Depending on frameworks Depending on time Depending on money False positives may be found Use the knowledge in upcoming code!