PHP libraries and tools

rubenrubiob

Rubén Rubio

Posted on September 22, 2021

PHP libraries and tools

Introduction

We want the new project we are starting at Filmin to be robust. Therefore, besides adopting good coding practices, we checked some PHP libraries and tools that can help us improve its quality.

Here is a list of the tools we analyzed with the description they have in its Github repository, excluding well known tools or libraries, such as PHPUnit.

Most of these tools are CLI commands, so they can be integrated in a CI/CD flow. Others can be integrated within the IDE, such as Psalm or PHPStan in PHPStorm. And others are libraries that we use in our project.

The list is based in our experience, and it is heavily influenced by:

Libraries

  • brick/date-time: Date and time library for PHP
  • thecodingmachine/safe: All PHP functions, rewritten to throw exceptions instead of returning false, now for php8
  • Tactician: A small, flexible command bus
  • ronanguilloux/isocodes: PHP library - Validators for standards from ISO, International Finance, Public Administrations, GS1, Manufacturing Industry, Phone numbers & Zipcodes for many countries
  • box/spout: Read and write spreadsheet files (CSV, XLSX and ODS), in a fast and scalable way
  • league/flysystem: Abstraction for local and remote filesystems
  • Serializer:
    • Symfony Serializer Component: The Serializer component is meant to be used to turn objects into a specific format (XML, JSON, YAML, …) and the other way around.
    • JMS Serializer: This library allows you to (de-)serialize data of any complexity. Currently, it supports XML and JSON.
    • Fractal: Fractal provides a presentation and transformation layer for complex data output, the like found in RESTful APIs, and works really well with JSON. Think of this as a view layer for your JSON/YAML/etc.

Tools

Code quality

Testing

Composer tools

  • ComposerRequireChecker: A CLI tool to check whether a specific composer package uses imported symbols that aren't part of its direct composer dependencies
  • composer-unused: Show unused composer dependencies by scanning your code
  • composer-normalize: Provides a composer plugin for normalizing composer.json.

Security

General

  • Robo: Modern Task Runner for PHP
  • CaptainHook: Very flexible git hook manager for php developers

Conclusion

There is a huge amount of tools written by the PHP community that helps us increase the quality of our project, and that ease our task as developers. We need to choose the ones that adapt better to our project and use case.

And you? Do you know any interesting tool that is not in this list?

💖 💪 🙅 🚩
rubenrubiob
Rubén Rubio

Posted on September 22, 2021

Join Our Newsletter. No Spam, Only the good stuff.

Sign up to receive the latest update from our blog.

Related

PHP libraries and tools
php PHP libraries and tools

September 22, 2021