A collection of Simple, opinionated yet hopefully useful PHP Helper Libs

1.0.0 2019-09-20 10:00 UTC

This package is auto-updated.

Last update: 2020-11-18 16:49:05 UTC


Build Status Total Downloads Monthly Downloads Latest Stable Version PRs Welcome License

OpinHelpers is a bellow "Swiss Army Knife" level set of opinionated Helper libs (hence the opin[h]el^^) covering some of the most annoying aspects of php programing, such as UTF8 string manipulation, arbitrary precision Mathematics or properly locking a file.

OpinHelpers libs are opinionated in several ways and do not aim at being universal, but they should hopefully be pretty useful in many IRL cases.


OpinHelpers can be installed using composer:

composer require "fab2s/opinhelpers"

If you want to specifically install the php >=7.1.0 version, use:

composer require "fab2s/opinhelpers" ^1

If you want to specifically install the php 5.6/7.0 version, use:

composer require "fab2s/opinhelpers" ^0

There are mostly (see Compatibility) no changes other than further typing from 0.x to 1.x


OpinHelpers is just requiring individual libraries that each has its own repository and documentation

  • Math: High precision base10 fluent helper with a rather strict approach
  • Utf8: Purely static UTF8 Helper
  • Strings: Purely static String Helper to handle more advanced utf8 string manipulations
  • Bom: Purely static zero dependencies BOM Helper to handle unicode BOMs
  • FileLock: fluent file locking helper


OpinHelpers comes with a deprecated.php file you can require in your project should you need to keep using the old namespace from before v1

require 'vendor/fab2s/opinHelpers/src/deprecated.php';

// no you can 
use fab2s\OpinHelpers\Math;

// same as 
use fab2s\Math\Math;

// old version will be marked as deprecated 
$number = fab2s\OpinHelpers\Math::numder('42');

// new one is ok with full type hints
$number = fab2s\Math\Math::numder('42');

No notable changes where made to the methods names or signature, but there was some small return types changes (false vs null in Utf8), one edge value (Utf8::chr(0) = "\0") and one bug with UTF-32-LE BOM detection. It should be ok in most of the cases but it is still preferable to refactor to new namespace and review the usage


OpinHelpers is tested against php 7.1, 7.2, 7.3 and 7.4


Contributions are welcome, do not hesitate to open issues and submit pull requests.


Each of OpinHelpers components are open-sourced software licensed under the MIT license