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

Cool Tools for PHP Development (GTA PHP June 2021)

Cool Tools for PHP Development (GTA PHP June 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
PRO

June 10, 2021
Tweet

More Decks by Ben Ramsey

Other Decks in Programming

Transcript

  1. Cool Tools for


    PHP Development
    Ben Ramsey

    GTA PHP • June 10, 2021

    View Slide

  2. What is DX?
    DEVELOPER EXPERIENCE

    View Slide

  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.

    View Slide

  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.

    View Slide

  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.

    View Slide

  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?

    View Slide

  7. Cool tools

    View Slide

  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?

    View Slide

  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

    View Slide

  10. Live coding!

    View Slide

  11. 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

    View Slide

  12. 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

    View Slide

  13. 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

    View Slide

  14. Thanks!
    @ramsey
    @[email protected]
    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.
    [email protected]

    View Slide