corpsee / nameless-utilities
PHP Utilities compliant with PSR-1, PSR-2, PSR-4 and Composer
Requires
- php: >=7.1.0
- ext-bcmath: *
- ext-intl: *
- ext-mbstring: *
Requires (Dev)
- phpunit/phpunit: ~7.0
This package is auto-updated.
Last update: 2020-08-08 15:33:58 UTC
README
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.