gui-don / rico-library
Rico project library - PHP libraries
Installs: 4 559
Dependents: 1
Suggesters: 0
Security: 0
Stars: 0
Forks: 0
pkg:composer/gui-don/rico-library
Requires
- php: >=7.3
- ext-dom: *
- ext-intl: *
- ext-mbstring: *
Requires (Dev)
- friendsofphp/php-cs-fixer: ^2
- pheromone/phpcs-security-audit: ^2.0
- phpstan/phpstan: ^0.12.0
- phpunit/phpunit: ^9
README

PHP utility libraries
This project is made of some lightweight and well-tested libraries.
They are useful to access some frequently used low-level robust functions while not wanting to import tons of dependencies.
Installation
Composer
composer require gui-don/rico-library
Manual with source
Import the autoload.php file in your code:
require_once('autoload.php');
use \Rico\Lib\StringUtils;
// etc
Manual with Phar
- Download latest phar file on the releases page.
- Import it in your code:
require_once('phar://rico-lib.phar');
use \Rico\Lib\StringUtils;
// etc
Documentation
How to - Procedural style (recommended in data object)
<?php
require_once('autoload.php');
use \Rico\Slib\StringUtils;
// […] Some code
// $uglyString = getUglyString();
$beautifulString = StringUtils::beautifulise($uglyString);
How to - OOP style (recommended anywhere else)
<?php
// autoload Not need if using composer
// require_once('autoload.php');
use \Rico\Lib\StringUtils;
// […] Some code
// $uglyString = $object->getUglyString();
$stringUtils = new StringUtils();
$beautifulString = $stringUtils->beautifulise($uglyString);
Missing a function? Make a pull request or simply extends the following classes.
ArrayUtils lib
- flatten(array $multidimensionalArray): array: Extracts each element of a $multidimensionalArray in a single list. Does not preserve any keys.
    // […]
    $array = [1, 2, 3], ['test' => 2], [], [2, 5, 6, 7]];
    var_dump(ArrayUtils::flatten($array));
    // Result: [1, 2, 3, 2, 2, 5, 6, 7]
- insert($needle, int $index, array $haystack): array: Inserts an element $needle at the $index position in the $haystack, conserving the order and moving other element in the way. Does not preserve any keys.
    // […]
    $needle = 'replace';
    $index = 10;
    $haystack = [0 => 'zero', 10 => 'misplaced', 14 => 'next'];
    var_dump(ArrayUtils::insert($needle, $index, $haystack));
    // Result: [0 => 'zero', 1 => 'replace', 2 => 'misplaced', 3 => 'next']
- orderByOccurrence(array $array): array: Order an $array values by the number of occurrences of each element of that array. Work with any types. De-duplicates values.
    // […]
    $array = [1, 2, 3, 4, 5, 4, 5, 4];
    var_dump(ArrayUtils::orderByOccurrence($array));
    // Result: [4, 5, 1, 2, 3]
- transpose(array $similarArrays): array: Transforms multiple $similarArrays into key-valued arrays.
    // […]
    $similarArrays = ['first' => 1, 'second' => 2, 'third' => 3], ['first' => 1], ['first' => 1, 'third' => 3, 'second' => 2];
    var_dump(ArrayUtils::transpose($similarArrays));
    // Result: ['first' => [1, 1, 1], 'second' => [2, 2], 'third' => [3, 3]]
FileUtils lib
- addLine($file, $line): Adds a new $line at the end of a $file without duplication.
- count($file, $countEmpty = false): Counts the number of lines in a $file.
- extractExtension(string $filename): Extracts the extension (without the dot) of a filename alone or contained in a path.
FilesystemUtils lib
- createPath($path): Creates the completer $path with all missing intermediates directories.
- createSymlink($link, $path): Creates a symbolic $link pointing to $file.
- listDirectory($path, $option): Gets filenames and folders names (according to $option) inside a $path.
StringUtils lib
- alphaToId($string, $secret): Converts an alphabetic $string into an identifier (an integer).
- beautifulise($uglyString): Transforms an $uglyString (with incorrect ponctuation) into beautiful string (with correct ponctuation).
- humanFilesize($bytes): Gets a human readable string of a size in $bytes.
- idToAlpha($integer, $secret): Converts a $identifier into an alphanumeric string.
- minify(string $string): Removes whitespaces, line breaks and comment out of a $string.
- normalize($string): Cleans a $string by removing multi-spaces, line breaks, indents and HTML tags.
- normalizeWhitespace($string): Replaces all sort of spaces (tab, nil, non-breaking…) in a $string by a simple space.
- randString($length, $allowedChars): Generates a random string of $length $allowedChars.
- removeBracketContent($string): Removes brackets and its content from a $string.
- removeLine($string): Removes all sort of line breaks inside a $string.
- removeWhitespace($string): Removes all sort of spaces from a $string.
- slugify($string): Transforms a $string into a ascii-only string separated by -.
- underscoreToSpace($string): Replaces underscore in $string by spaces.
ValidationUtils lib
- isEmail($mixed): Checks that $mixed value is an email.
- isHexadecimal($mixed): Checks that $mixed value is a hexadecimal value.
- isIp($mixed): Checks that $mixed value is an IP (v4 or v6).
- isNumber($mixed): Checks that $mixed value is a decimal number (float or integer).
- isPhoneNumber($string): Checks that $string value is a phone number.
- isPositiveInt($mixed): Checks that $mixed value is a positive integer (primary key).
- isURL($mixed): Checks that $mixed value is an URL.
- isURLMagnet($mixed): Checks that $mixed value is a magnet URL.
MathUtils lib
- smartRound($number, $idealLength): Rounds a $number adding decimal part only when int part of $number < $idealLength.
UrlUtils lib
- getResourceName($url): Gets the name of a resource (image, pdf, …) out of an $url.
- stripResourceName($url): Gets the URL without the resource (image, pdf, …).