corpsee/nameless-utilities

该包已被废弃,不再维护。未建议替代包。

符合PSR-1、PSR-2、PSR-4和Composer规范的PHP工具包

3.0.1 2018-09-02 11:37 UTC

This package is auto-updated.

Last update: 2020-08-08 15:33:58 UTC


README

PHP Censor Travis CI SensioLabs Insight Codecov Latest Version Total downloads License

该包已被废弃,不再维护。

Nameless utilities

符合PSR-1、PSR-2、PSR-4和Composer的PHP工具包。

安装

您可以使用composer安装Nameless utilities。将以下代码添加到"require"部分的composer.json

"require": {
    "corpsee/nameless-utilities": "<version>"
}

使用Composer安装依赖项

cd path/to/your-project
composer install

使用方法

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'

与本地化/备用标签一起使用

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

将浮点数值传递给期望字符串操作数的BCMath函数可能不会产生预期的效果,因为PHP将浮点值转换为字符串的方式,即字符串可能以指数形式表示(BCMath不支持),并且十进制分隔符是区域相关的(而BCMath始终期望小数点)。

<?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解决浮点值转换为字符串和BCMath函数中的逗号作为十进制分隔符的问题

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

测试

您可以使用以下命令运行单元测试

cd path/to/nameless-utilities
./vendor/bin/phpunit

许可

Nameless utilities是开源软件,根据GPL-3.0许可证授权。