PHP libraries and tools

rubenrubiob

Rubén Rubio

Posted on October 18, 2023

PHP libraries and tools

PHP possesses a rich ecosystem, with plenty of libraries and tools. Here is a list of them that I consider interesting, beyond any framework.

At the end, I included some useful checks for Composer and Symfony to execute on a CI pipeline.

Libraries

  • brick/math: Arbitrary-precision arithmetic library for PHP
  • openspout/openspout: Read and write spreadsheet files (CSV, XLSX and ODS), in a fast and scalable way
  • thecodingmachine/safe: All PHP functions, rewritten to throw exceptions instead of returning false
  • azjezz/psl: PHP Standard Library - a modern, consistent, centralized, well-typed, non-blocking set of APIs for PHP programmers
  • particle/validator: Particle\Validator is a validation library with an extremely clean API which makes validation fun!
  • league/tactician: A small, flexible command bus.
  • league/flysystem: Abstraction for local and remote filesystems
  • golem-ai/messenger-kit: This command simulates consumer failures and prints a timeline of the events. It lets you check whether your retry strategy configuration does what you expect it to.
  • swarrot/swarrot: A lib to consume message from any Broker
  • ronanguilloux/isocodes: PHP library - Validators for standards from ISO, International Finance, Public Administrations, GS1, Manufacturing Industry, Phone numbers & Zipcodes for many countries
  • php-units-of-measure/php-units-of-measure: A library for handling physical quantities and the units of measure in which they're represented.
  • rawr/t-regx: PHP regular expression brought up to modern standards.
  • mpratt/embera: A Oembed consumer library, that gives you information about urls. It helps you replace urls to youtube or vimeo for example, with their html embed code. It has advanced features like offline support, responsive embeds and caching support.
  • spatie/geocoder: Geocode addresses to coordinates
  • php-soap/wsdl-reader: A pure PHP wsdl metadata provider
  • phpro/soap-client: A general purpose SOAP client for PHP
  • eventsauce/backoff: Sophisticated back-off strategies for retrying operations.
  • pontedilana/php-weasyprint: PHP library allowing PDF generation or snapshot from an URL or an HTML page. Wrapper for Kozea/WeasyPrint
  • Parsers:
    • cuyz/valinor: PHP library that helps to map any input into a strongly-typed value object structure.
    • cerbero/json-parser: 🧩 Zero-dependencies lazy parser to read JSON of any dimension and from any source in a memory-efficient way.
    • yzen.dev/plain-to-class: Class-transformer to transform your data into a typed object
    • JanePHP: 🌱 Jane is a set of libraries to generate Models & API Clients based on JSON Schema / OpenAPI specs
  • Time:
  • Money:
    • brick/money: A money and currency library for PHP
    • moneyphp: PHP implementation of Fowler's Money pattern
  • Search:
    • schranz-search/seal: Search abstraction over different search engines written in PHP. Currently implemented Elasticsearch, Opensearch, Algolia, Meilisearch, RediSearch, Solr, Typesense.
    • loupe/loupe: A full text search engine with tokenization, stemming, typo tolerance, filters and geo support based on only PHP and SQLite.

Test libraries

Tools

Performance frameworks

  • Hyperf: 🚀 A coroutine framework that focuses on hyperspeed and flexibility. Building microservice or middleware with ease.
  • Flow PHP: Flow PHP - strongly typed data processing framework
  • PHPTokio: Use any async Rust library from PHP!

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

CI checks

  • Lints (for Symfony):
    • PHP: find src public bin -name "*.php" -print0 | xargs -0 -n1 php -l
    • Container: bin/console lint:container
    • YAML: bin/console lint:yaml config src
    • Twig: bin/console lint:twig src
  • Symfony + Doctrine:
    • Deprecations: bin/console debug:container --deprecations (even if it fails, it returns 0 as exit code)
    • Doctrine schema: bin/console doctrine:schema:validate --skip-sync
  • Composer
    • Audit (The audit command checks for security vulnerability advisories for installed packages.): composer audit
    • Outdated (The outdated command shows a list of installed packages that have updates available, including their current and latest versions): composer outdated --minor-only --direct --strict
    • Validate (It will check if your composer.json is valid): composer validate --strict

Sources

This list is inspired (and based to some extent) by:

💖 💪 🙅 🚩
rubenrubiob
Rubén Rubio

Posted on October 18, 2023

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

October 18, 2023