A static analysis tool that detects architectural flaws and dependency issues in PHP applications before they become maintenance nightmares.
dePHPend is a static analysis tool for PHP that detects architectural flaws and dependency issues in codebases. It helps developers visualize dependencies, identify violations (like improper layer interactions), and refactor where needed most. By analyzing both static code and dynamic traces, it prevents maintenance nightmares caused by hidden dependencies.
PHP developers working on medium to large applications who need to understand, refactor, or enforce architectural boundaries. It's especially useful for teams dealing with legacy codebases or complex dependency graphs.
Developers choose dePHPend because it provides actionable insights into dependency hell with multiple output formats (UML, DSM, metrics) and supports both static and dynamic analysis. Its filtering and integration capabilities make it adaptable to real-world refactoring workflows.
Detect flaws in your architecture, before they drag you down into the depths of dependency hell ...
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Uncovers dependencies obscured by singletons and service locators, as highlighted in the 'What it does' section, making it essential for refactoring legacy code.
Tracks layer violations and integrates with CI/CD via custom scripts, demonstrated in the 'Architecture Constraints' example for automated validation.
Supports text, UML, DSM, and metrics outputs, allowing tailored analysis for documentation or debugging, as detailed in the usage commands.
Enhances static analysis with XDebug trace data to handle legacy or dynamically typed code, though setup requires significant configuration.
Dynamic analysis demands extensive XDebug configuration and can drastically slow PHP performance, as warned in the 'Setup' section, adding overhead.
DSM generation is labeled 'under construction' and not fun to use, while metrics are not production-ready, with the README advising reliance on PHP Depend.
UML output requires PlantUML installation, and large codebases may need memory tweaks, adding steps beyond the core tool.