datalinx/php-utils

Collection of common helper functions organized into fluent classes

v2.5.0 2024-07-10 08:45 UTC

README

Packagist Version Packagist PHP Version Support Packagist Downloads Test runner codecov Conventional Commits Packagist License

About

This package is a collection of classes that provide a fluent OOP interface to manipulate common primitive data types such as strings, numbers, arrays and other structures by providing a lean wrapper around libraries from other packages.

See the changelog here.

Requirements

  • PHP >= 7.4
  • mbstring and intl PHP extensions
  • picqer/php-barcode-generator package, if you want to use the FluentBarcode wrapper
  • Linux server is supported

Installing

Download it with composer:

composer require datalinx/php-utils

If you want to use the FluentBarcode wrapper (which is really cool!), install the additional dependency:

composer require picqer/php-barcode-generator

Usage

With an out-of-the-box installation, you must create an instance of each utility and then interact with it.

$string = new \DataLinx\PhpUtils\Fluent\FluentString('My  string');
echo $string->clean(); // Outputs: My string

However, if you include the src/fluent_helpers.php file, you can use the helper functions to create new instances in a leaner way:

echo str('My  string')->clean(); // Outputs: My string

You can also create your own helper functions to create new instances, if the ones this library provides do not suite you or already exist in your project. The library-provided helper functions are not loaded by default.

Contributing

If you have some suggestions how to make this package better, please open an issue or even better, submit a pull request.

Should you want to contribute, please see the development guidelines in the DataLinx PHP package template.

Changelog

All notable changes to this project are automatically documented in the CHANGELOG.md file using the release workflow, based on the release-please GitHub action.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

For all this to work, commit messages must follow the Conventional commits specification, which is also enforced by a Git hook.