This package is abandoned and no longer maintained.
Nameless utilities
PHP Utilities compliant with PSR-1, PSR-2, PSR-4 and Composer.
Installation
You can install Nameless utilities by composer. Add following code to "require" section of the composer.json
:
"require": {
"corpsee/nameless-utilities": "<version>"
}
And install dependencies using the Composer:
cd path/to/your-project
composer install
Usage
ArrayHelper
use Nameless\Utilities\ArrayHelper;
echo ArrayHelper::toString([1, 2, 3]); // Prints '1, 2, 3', ', ' is default separator
echo ArrayHelper::toString([1, 2, 3], ':'); // Prints '1:2:3'
$array = [
'one' => 1,
'two' => 2,
'three' => 3,
];
echo ArrayHelper::get($array, 'four', 4); // Prints '4' (4)
DateTimeHelper
use Nameless\Utilities\DateTimeHelper;
echo DateTimeHelper::humanize(121.001); // Prints '2 minute 1 second 1 millisecond'
Usage with localization/alternative labels:
use Nameless\Utilities\DateTimeHelper;
$localization = [
['мкс', 'мкс'],
['мс', 'мс'],
['с', 'с'],
['мин', 'мин'],
['ч', 'ч'],
['д', 'д'],
['мес', 'мес'],
['г', 'г'],
];
echo DateTimeHelper::humanize(121, $localization); // Prints '2 мин 1 с'
FileSizeHelper
use Nameless\Utilities\FileSizeHelper;
echo FileSizeHelper::humanize(1000000000); // Prints '953.67MB'
echo FileSizeHelper::unhumanize('954MB'); // Prints '1000341504' (bytes)
PathHelper
use Nameless\Utilities\PathHelper;
echo PathHelper::toURL('/base/path/to/url', '/base'); // Prints '/path/to/url'
StringHelper
use Nameless\Utilities\StringHelper;
var_dump(StringHelper::startWith('example', 'exa')); // Prints true
var_dump(StringHelper::endWith('example', 'mplee')); // Prints true
var_dump(StringHelper::contains('example', 'xampl')); // Prints true
echo StringHelper::cut('example', 6); // Prints 'exampl...', '...' is default suffix
echo StringHelper::cutWords('simple example', 1); // Prints 'example...', '...' is default suffix
echo StringHelper::transliterate('очень простой пример', 'Russian-Latin/BGN'); // Prints transliterated 'ochen prostoj primer'
echo StringHelper::standardize('очень простой Пример', 'Russian-Latin/BGN'); // Prints standardizated 'ochen_prostoj_primer', '_' is default words separator
echo StringHelper::standardize('очень простой Пример', 'Russian-Latin/BGN', '-'); // Prints 'ochen-prostoj-primer', use '-' for slugify string
var_dump(StringHelper::toArray('1,2,3,')); // Prints Array ['1', '2', '3'], ',' is default separator
echo StringHelper::snakecaseToCamelcase('snake_case'); // Prints 'SnakeCase'
echo StringHelper::snakecaseToCamelcase('snake_case', true); // Prints 'snakeCase'
echo StringHelper::camelcaseToSnakecase('CamelCase'); // Prints 'camel_case'
UrlHelper
use Nameless\Utilities\UrlHelper;
echo UrlHelper::toPath('/path/to/url', '/base'); // Prints '/base/path/to/url'
BcMathHelper
Passing values of type float to a BCMath function which expects a string as operand may not have the desired effect due to the way PHP converts float values to string, namely that the string may be in exponential notation (what is not supported by BCMath), and that the decimal separator is locale depended (while BCMath always expects a decimal point).
<?php
$num1 = 0; // (string) 0 => '0'
$num2 = -0.000005; // (string) -0.000005 => '-5.05E-6'
echo bcadd($num1, $num2, 6); // => '0.000000'
setlocale(LC_NUMERIC, 'de_DE'); // uses a decimal comma
$num2 = 1.2; // (string) 1.2 => '1,2'
echo bcsub($num1, $num2, 1); // => '0.0'
?>
BcMathHelper solve problem with floats to strings converting and "," as decimal separator for BcMath functions:
use Nameless\Utilities\BcMathHelper;
var_dump(BcMathHelper::add('0.000005', '0.000005', 5)); // (float)0.00001
var_dump(BcMathHelper::add('0,000005', '0,000005', 5)); // (float)0.00001
var_dump(BcMathHelper::add(0.000005, 0.000005, 5)); // (float)0.00001
var_dump(BcMathHelper::add('5.0E-6', '5.0E-7', 5)); // (float)0.00001
var_dump(BcMathHelper::sub(0.000005, 0.000001, 5)); // (float)0.000004
var_dump(BcMathHelper::mul(0.000005, 0.000002, 11)); // (float)0.00000000001
var_dump(BcMathHelper::div(0.000005, 0.000002, 2)); // (float)2.50
var_dump(BcMathHelper::comp(0.000005, 0.000002, 6)); // (int)1
Tests
You can run the unit tests with the following commands:
cd path/to/nameless-utilities
./vendor/bin/phpunit
License
The Nameless utilities is open source software licensed under the GPL-3.0 license.