Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Cool Tools for PHP Development (Essex Web July 2021)

Cool Tools for PHP Development (Essex Web July 2021)

Good developer experience (DX) is critical in the tools we use, whether external- or internal-facing. The easier it is for your team to do their job, the happier and more efficient they'll be. So far, the JavaScript community has cornered the market on developer tooling, but the PHP community is catching up.

In this talk, I'll crack open my toolbox and share some of the tools I use in daily development and why I think they improve the DX of projects I work on. We'll look at some familiar tools, such as PHPUnit and PHP_CodeSniffer, along with new tools like PHPStan and Psalm. I'll show how to configure these tools for better workflows through Composer scripts and plugins. We'll also see how to standardize your team's workflow with CaptainHook. By the end, I hope you'll leave with some good ideas for improving your team's DX.


Ben Ramsey

July 21, 2021

More Decks by Ben Ramsey

Other Decks in Programming


  1. Cool Tools for PHP Development Ben Ramsey 
 Essex Web

    Dev • 21 July 2021

  3. “DEx consists of experiences relating to all kinds of artifacts

    and activities that a developer may encounter as part of their involvement in software development. These could roughly be divided into experiences regarding i) development infrastructure (e.g. development and management tools, programming languages, libraries, platforms, frameworks, processes, and methods), ii) feelings about work (e.g. respect, attachment, belonging), and iii) the value of one’s own contribution (e.g. alignment of one’s own goals with those of the project, plans, intentions, and commitment).” Fagerholm, F., Münch, J. (2012). Developer Experience: Concept and De fi nition. In International Conference on Software and System Process (ICSSP 2012), pp. 73–77. IEEE.
  4. Fagerholm, F., Münch, J. (2012). Developer Experience: Concept and De

    fi nition. In International Conference on Software and System Process (ICSSP 2012), pp. 73–77. IEEE.
  5. CONCEPTUAL FRAMEWORK Developer experience Cognition How do developers perceive the

    development infrastructure? Conation How do developers see the value of their contribution? A ff ect How do developers feel about their work? Fagerholm, F., Münch, J. (2012). Developer Experience: Concept and De fi nition. In International Conference on Software and System Process (ICSSP 2012), pp. 73–77. IEEE.
  6. Do your tools get in the way? Are they a

    joy to use? The better experience a developer has with their tools, the more e ff i cient and happy they’ll be. How do you perceive the infrastructure?
  7. Cool tools

  8. The tools you need to do your job The tools

    that make your job easier The tools that bring joy to your work Cool tools WHAT ARE THEY?
  9. How can you create better work fl ows for the

    tools you already use? Programming is a “team sport.” How can you share these work fl ows with your team? In other words, how can you improve your DX? Cool tools OUR FOCUS
  10. Live coding!

  11. Using Composer scripts to stitch together work fl ows and

    share with team/contributors Using Composer plugins to combine work fl ows into commands that can be shared across projects Using CaptainHook to ensure team/ contributors follow work fl ows seamlessly Recap WE COVERED…
  12. Composer scripts: 
 getcomposer.org/doc/articles/scripts.md Composer plugins: 
 getcomposer.org/doc/articles/plugins.md CaptainHook: 

    captainhookphp.github.io/captainhook Learn more
  13. Lots of cool tools!

  14. atoum Behat bitexpert/captainhook-infection CaptainHook Code Scrawl Codeception composer outdated -D

    composer validate composer-lock-di f composer-normalize composer-unused ComposerRequireChecker Danger PHP dePHPend Deptrac doctrine orm:validate-schema Dredd Exakat GrumPHP Infection laminas/automatic-releases Lando Latte syntax checker madewithlove/license-checker
  15. mamazu/documentation-validator Markdown Link Linter mlocati/docker-php-extension-installer Neon checker Parse: A PHP

    Security Scanner Pest Phan Phinx: Simple PHP Database Migrations PHIVE php -l PHP Architecture Tester PHP Copy/Paste Detector PHP CS Fixer PHP Extensions Finder PHP Insights PHP Magic Number Detector PHP Mess Detector PHP Parallel Lint PHP Quality Assurance PHP Security Advisories Database PHP VarDump Check PHPBench PHPCompatibility PHPCSExtra
  16. phpDocumentor phpDox PHPStan Phpsu: Synchronisation Utility PHPUnit PHP_CodeSni ff er

    Prettier Psalm ramsey/composer-install ramsey/composer-repl ramsey/conventional-commits ramsey/devtools Rector Roave Backward Compatibility Check Roave Security Advisories roave/no- fl oaters roave/no-leaks roave/you-are-using-it-wrong Robo Slevomat Coding Standard symfony check:security symplify/easy-coding-standard UpToDocs
  17. And many more at packagist.org

  18. Thanks! @ramsey @ramsey@phpc.social github.com/ramsey dev.to/ramsey © 2021 Ben Ramsey This

    work is licensed under a 
 Creative Commons Attribution 4.0 International License. All photos are from Unsplash and used according to the Unsplash License. ben@benramsey.com