beecubu/php-foundation-helpers

Some basic helpers for Arrays, Strings, Dates, CSVs, HTMLs, etc…

Installs: 146

Dependents: 6

Suggesters: 0

Security: 0

pkg:composer/beecubu/php-foundation-helpers

v1.11.1 2026-02-21 01:19 UTC

README

Utility helpers for common tasks: arrays, strings, dates, CSV, HTML, IDs, email/phone validation, and regex helpers.
Functions are autoloaded as plain functions (no classes) under the Beecubu\Foundation\Helpers\* namespaces.

Requirements

  • PHP 7.1+
  • ext-mbstring

Installation

composer require beecubu/php-foundation-helpers

Usage

Arrays

use function Beecubu\Foundation\Helpers\Arrays\array_move_item;
use function Beecubu\Foundation\Helpers\Arrays\array_ensure_value;
use function Beecubu\Foundation\Helpers\Arrays\array2html;

array_move_item($items, 2, 0);
array_ensure_value($tags, 'new', true);
$html = array2html($rows, true);

Strings

use function Beecubu\Foundation\Helpers\String\trim_all;
use function Beecubu\Foundation\Helpers\String\removeAccents;
use function Beecubu\Foundation\Helpers\String\mb_ucwords;
use function Beecubu\Foundation\Helpers\String\base64url_encode;
use function Beecubu\Foundation\Helpers\String\parseInt;

$clean = trim_all(" a  b \\n");
$ascii = removeAccents("Àéï");
$title = mb_ucwords("hello world");
$token = base64url_encode("abc");
$digits = parseInt("+34 600 123 123");

Dates

use function Beecubu\Foundation\Helpers\DateTime\compareDates;
use function Beecubu\Foundation\Helpers\DateTime\dateIsToday;
use function Beecubu\Foundation\Helpers\DateTime\dateAsStartOfDay;
use function Beecubu\Foundation\Helpers\DateTime\dateFromString;

compareDates(new DateTime('2024-01-01'), new DateTime('2024-01-02'));
dateIsToday(new DateTime());
$start = dateAsStartOfDay(new DateTime());
$parsed = dateFromString('2024-02-04');

CSV

use function Beecubu\Foundation\Helpers\CSV\parse_csv;
use function Beecubu\Foundation\Helpers\CSV\array2csv;

parse_csv('users.csv', function (array $row) {
    // ...
});

$csv = array2csv($rows, true);

HTML

use function Beecubu\Foundation\Helpers\HTML\decode_all_html_entities;
use function Beecubu\Foundation\Helpers\HTML\hexColorToRGBA;
use function Beecubu\Foundation\Helpers\HTML\splitHtmlIntoBreakElements;

$text = decode_all_html_entities($html);
$rgba = hexColorToRGBA('#ff00aa80');
$parts = splitHtmlIntoBreakElements($html, true);

IDs

use function Beecubu\Foundation\Helpers\Id\uniqid;
use function Beecubu\Foundation\Helpers\Id\objectId;
use function Beecubu\Foundation\Helpers\Id\uuid;
use function Beecubu\Foundation\Helpers\Id\validateObjectId;

$id = uniqid(12);
$mongoId = objectId();
$uuid = uuid();
$ok = validateObjectId($mongoId);

Email / Phone

use function Beecubu\Foundation\Helpers\Email\isValid as isValidEmail;
use function Beecubu\Foundation\Helpers\Phone\phoneNumberParser;
use function Beecubu\Foundation\Helpers\Phone\phoneNumberFormatter;

isValidEmail('user@example.com');
$raw = phoneNumberParser('+34 600 123 123');
$pretty = phoneNumberFormatter($raw, '34');

RegExp

use function Beecubu\Foundation\Helpers\RegExp\accentToRegex;

$regex = accentToRegex('canción'); // accent-insensitive regex fragment