List of useful approaches to improve and check your PHP-based project.
- Base section
- Architecture section
- Code section
- Database section
- Frontend section
- Security section
- Administration section
- Team section
- Tools section
- Metrics section
- Scalable and performance section
- Do you use the latest stable PHP version?
- Try to be aware of last changes, technologies and tools.
- PHP: The Right Way - best PHP practices.
- Awesome PHP - list of PHP libraries, resources and shiny things.
- The twelve-factor app - Methodology for building software-as-a-service apps.
- Do you use well supported, not outdated and popular PHP framework, not your own?
- Do you have a lot of custom solutions? Maybe it’s easier to use external libraries, PHP extensions and SPL?
- Do you use dependency manager?
- Try to follow by best coding practices like SOLID, KISS, DRY and etc.
- Try to create common solution, not unique.
- Do you use code version control system and appropriate branching model?
- Git, Mercurial - source control management tools.
- Git Flow, GitHub Flow, GitLab Flow - branching models.
- Do you have common code style? Does it apply automatically?
- Do you have automatically generated code documentation for your app and API?
- Do you have code review and acceptance policy?
- Do you have code auto-completion and live templates, skeletons for commonly used files?
- Do you use ORM model to not depend on database type?
- Do you have any backup system?
- Do have clear migration system?
- Do you use any template engine?
- Do you use any up to date frontend framework?
- Do you use last HTML version?
- Try to follow OWASP Top 10.
- Always use protected connection for your web application.
- Let’s Encrypt, SSL For Free - free SSL certificates.
- Do you check project code for vulnerabilities?
- Do you have password and other sensitive data saving policy?
- Do you dev or testing environment and splited configuration for them?
- Try to use containerisation.
- Do you have any hardware monitoring system?
- Do you have logging system?
- Do you have log prioritization?
- Do you have any notification system when errors occurs?
- Do you have clear team structure?
- Do you have problems in communication?
- Do you use bug reporting system?
- Do you use predefined templates for bug report description?
- Do you have connected debugging tool for your application?
- Do you use deployment tool?
- Maybe it will be useful to integrate CI in your development process.
- Do you know your code coverage for tests?
- Do you know your code quality? Try to use static code analysis tools.
- Do you know your team productivity and development score?
- Try to use queue system for better performance.
- Try to use cache system.
- Try to use async php.