承接 phannaly/laravel-helpers 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

phannaly/laravel-helpers

Composer 安装命令:

composer require phannaly/laravel-helpers

包简介

The PHP helpers function extract from Laravel

README 文档

README

Build Status StyleCI

This project is independently you don't need to install anything(composer) unless you want to contribute.

Most of the code extract from Laravel codebase.

Requirements

  • PHP 7.0 or higher

Setup

You don't need to install by composer if your project doesn't have it.

Just import it manually in src folder.

But If you want to install by composer, please follow command below

composer require phannaly/laravel-helpers

This library will load automatically after you install it. Done!, you are good to go.

Available Methods

Arrays & Objects

Strings

Arrays & Objects

array_add()

The array_add function adds a given key / value pair to an array if the given key doesn't already exist in the array:

$array = array_add(['name' => 'Desk'], 'price', 100);

// ['name' => 'Desk', 'price' => 100]

array_collapse()

The array_collapse function collapses an array of arrays into a single array:

$array = array_collapse([[1, 2, 3], [4, 5, 6], [7, 8, 9]]);

// [1, 2, 3, 4, 5, 6, 7, 8, 9]

array_divide()

The array_divide function returns two arrays, one containing the keys, and the other containing the values of the given array:

[$keys, $values] = array_divide(['name' => 'Desk']);

// $keys: ['name']

// $values: ['Desk']

array_dot()

The array_dot function flattens a multi-dimensional array into a single level array that uses "dot" notation to indicate depth:

$array = ['products' => ['desk' => ['price' => 100]]];

$flattened = array_dot($array);

// ['products.desk.price' => 100]

array_except()

The array_except function removes the given key / value pairs from an array:

$array = ['name' => 'Desk', 'price' => 100];

$filtered = array_except($array, ['price']);

// ['name' => 'Desk']

array_first()

The array_first function returns the first element of an array passing a given truth test:

$array = [100, 200, 300];

$first = array_first($array, function ($value, $key) {
    return $value >= 150;
});

// 200

A default value may also be passed as the third parameter to the method. This value will be returned if no value passes the truth test:

$first = array_first($array, $callback, $default);

array_flatten()

The array_flatten function flattens a multi-dimensional array into a single level array:

$array = ['name' => 'Joe', 'languages' => ['PHP', 'Ruby']];

$flattened = array_flatten($array);

// ['Joe', 'PHP', 'Ruby']

array_forget()

The array_forget function removes a given key / value pair from a deeply nested array using "dot" notation:

$array = ['products' => ['desk' => ['price' => 100]]];

array_forget($array, 'products.desk');

// ['products' => []]

array_get()

The array_get function retrieves a value from a deeply nested array using "dot" notation:

$array = ['products' => ['desk' => ['price' => 100]]];

$price = array_get($array, 'products.desk.price');

// 100

The array_get function also accepts a default value, which will be returned if the specific key is not found:

$discount = array_get($array, 'products.desk.discount', 0);

// 0

array_has()

The array_has function checks whether a given item or items exists in an array using "dot" notation:

$array = ['product' => ['name' => 'Desk', 'price' => 100]];

$contains = array_has($array, 'product.name');

// true

$contains = array_has($array, ['product.price', 'product.discount']);

// false

array_last()

The array_last function returns the last element of an array passing a given truth test:

$array = [100, 200, 300, 110];

$last = array_last($array, function ($value, $key) {
    return $value >= 150;
});

// 300

A default value may be passed as the third argument to the method. This value will be returned if no value passes the truth test:

$last = array_last($array, $callback, $default);

array_only()

The array_only function returns only the specified key / value pairs from the given array:

$array = ['name' => 'Desk', 'price' => 100, 'orders' => 10];

$slice = array_only($array, ['name', 'price']);

// ['name' => 'Desk', 'price' => 100]

array_pluck()

The array_pluck function retrieves all of the values for a given key from an array:

$array = [
    ['developer' => ['id' => 1, 'name' => 'Taylor']],
    ['developer' => ['id' => 2, 'name' => 'Abigail']],
];

$names = array_pluck($array, 'developer.name');

// ['Taylor', 'Abigail']

You may also specify how you wish the resulting list to be keyed:

$names = array_pluck($array, 'developer.name', 'developer.id');

// [1 => 'Taylor', 2 => 'Abigail']

array_prepend()

The array_prepend function will push an item onto the beginning of an array:

$array = ['one', 'two', 'three', 'four'];

$array = array_prepend($array, 'zero');

// ['zero', 'one', 'two', 'three', 'four']

If needed, you may specify the key that should be used for the value:

$array = ['price' => 100];

$array = array_prepend($array, 'Desk', 'name');

// ['name' => 'Desk', 'price' => 100]

array_pull()

The array_pull function returns and removes a key / value pair from an array:

$array = ['name' => 'Desk', 'price' => 100];

$name = array_pull($array, 'name');

// $name: Desk

// $array: ['price' => 100]

A default value may be passed as the third argument to the method. This value will be returned if the key doesn't exist:

$value = array_pull($array, $key, $default);

array_random()

The array_random function returns a random value from an array:

$array = [1, 2, 3, 4, 5];

$random = array_random($array);

// 4 - (retrieved randomly)

You may also specify the number of items to return as an optional second argument. Note that providing this argument will return an array, even if only one item is desired:

$items = array_random($array, 2);

// [2, 5] - (retrieved randomly)

array_set()

The array_set function sets a value within a deeply nested array using "dot" notation:

$array = ['products' => ['desk' => ['price' => 100]]];

array_set($array, 'products.desk.price', 200);

// ['products' => ['desk' => ['price' => 200]]]

array_sort()

The array_sort function sorts an array by its values:

$array = ['Desk', 'Table', 'Chair'];

$sorted = array_sort($array);

// ['Chair', 'Desk', 'Table']

You may also sort the array by the results of the given Closure:

$array = [
    ['name' => 'Desk'],
    ['name' => 'Table'],
    ['name' => 'Chair'],
];

$sorted = array_values(array_sort($array, function ($value) {
    return $value['name'];
}));

/*
    [
        ['name' => 'Chair'],
        ['name' => 'Desk'],
        ['name' => 'Table'],
    ]
*/

array_sort_recursive()

The array_sort_recursive function recursively sorts an array using the sort function for numeric sub=arrays and ksort for associative sub-arrays:

$array = [
    ['Roman', 'Taylor', 'Li'],
    ['PHP', 'Ruby', 'JavaScript'],
    ['one' => 1, 'two' => 2, 'three' => 3],
];

$sorted = array_sort_recursive($array);

/*
    [
        ['JavaScript', 'PHP', 'Ruby'],
        ['one' => 1, 'three' => 3, 'two' => 2],
        ['Li', 'Roman', 'Taylor'],
    ]
*/

array_where()

The array_where function filters an array using the given Closure:

$array = [100, '200', 300, '400', 500];

$filtered = array_where($array, function ($value, $key) {
    return is_string($value);
});

// [1 => '200', 3 => '400']

array_wrap()

The array_wrap function wraps the given value in an array. If the given value is already an array it will not be changed:

$string = 'Laravel';

$array = array_wrap($string);

// ['Laravel']

If the given value is null, an empty array will be returned:

$nothing = null;

$array = array_wrap($nothing);

// []

data_fill()

The data_fill function sets a missing value within a nested array or object using "dot" notation:

$data = ['products' => ['desk' => ['price' => 100]]];

data_fill($data, 'products.desk.price', 200);

// ['products' => ['desk' => ['price' => 100]]]

data_fill($data, 'products.desk.discount', 10);

// ['products' => ['desk' => ['price' => 100, 'discount' => 10]]]

This function also accepts asterisks as wildcards and will fill the target accordingly:

$data = [
    'products' => [
        ['name' => 'Desk 1', 'price' => 100],
        ['name' => 'Desk 2'],
    ],
];

data_fill($data, 'products.*.price', 200);

/*
    [
        'products' => [
            ['name' => 'Desk 1', 'price' => 100],
            ['name' => 'Desk 2', 'price' => 200],
        ],
    ]
*/

data_get()

The data_get function retrieves a value from a nested array or object using "dot" notation:

$data = ['products' => ['desk' => ['price' => 100]]];

$price = data_get($data, 'products.desk.price');

// 100

The data_get function also accepts a default value, which will be returned if the specified key is not found:

$discount = data_get($data, 'products.desk.discount', 0);

// 0

data_set()

The data_set function sets a value within a nested array or object using "dot" notation:

$data = ['products' => ['desk' => ['price' => 100]]];

data_set($data, 'products.desk.price', 200);

// ['products' => ['desk' => ['price' => 200]]]

This function also accepts wildcards and will set values on the target accordingly:

$data = [
    'products' => [
        ['name' => 'Desk 1', 'price' => 100],
        ['name' => 'Desk 2', 'price' => 150],
    ],
];

data_set($data, 'products.*.price', 200);

/*
    [
        'products' => [
            ['name' => 'Desk 1', 'price' => 200],
            ['name' => 'Desk 2', 'price' => 200],
        ],
    ]
*/

By default, any existing values are overwritten. If you wish to only set a value if it doesn't exist, you may pass false as the third argument:

$data = ['products' => ['desk' => ['price' => 100]]];

data_set($data, 'products.desk.price', 200, false);

// ['products' => ['desk' => ['price' => 100]]]

head()

The head function returns the first element in the given array:

$array = [100, 200, 300];

$first = head($array);

// 100

last()

The last function returns the last element in the given array:

$array = [100, 200, 300];

$last = last($array);

// 300

Strings

camel_case()

The camel_case function converts the given string to camelCase:

$converted = camel_case('foo_bar');

// fooBar

ends_with()

The ends_with function determines if the given string ends with the given value:

$result = ends_with('This is my name', 'name');

// true

kebab_case()

The kebab_case function converts the given string to kebab-case:

$converted = kebab_case('fooBar');

// foo-bar

preg_replace_array()

The preg_replace_array function replaces a given pattern in the string sequentially using an array:

$string = 'The event will take place between :start and :end';

$replaced = preg_replace_array('/:[a-z_]+/', ['8:30', '9:00'], $string);

// The event will take place between 8:30 and 9:00

snake_case()

The snake_case function converts the given string to snake_case:

$converted = snake_case('fooBar');

// foo_bar

starts_with()

The starts_with function determines if the given string begins with the given value:

$result = starts_with('This is my name', 'This');

// true

str_after()

The str_after function returns everything after the given value in a string:

$slice = str_after('This is my name', 'This is');

// ' my name'

str_before()

The str_before function returns everything before the given value in a string:

$slice = str_before('This is my name', 'my name');

// 'This is '

str_contains()

The str_contains function determines if the given string contains the given value (case sensitive):

$contains = str_contains('This is my name', 'my');

// true

You may also pass an array of values to determine if the given string contains any of the values:

$contains = str_contains('This is my name', ['my', 'foo']);

// true

str_finish()

The str_finish function adds a single instance of the given value to a string if it does not already end with the value:

$adjusted = str_finish('this/string', '/');

// this/string/

$adjusted = str_finish('this/string/', '/');

// this/string/

str_is()

The str_is function determines if a given string matches a given pattern. Asterisks may be used to indicate wildcards:

$matches = str_is('foo*', 'foobar');

// true

$matches = str_is('baz*', 'foobar');

// false

str_limit()

The str_limit function truncates the given string at the specified length:

$truncated = str_limit('The quick brown fox jumps over the lazy dog', 20);

// The quick brown fox...

You may also pass a third argument to change the string that will be appended to the end:

$truncated = str_limit('The quick brown fox jumps over the lazy dog', 20, ' (...)');

// The quick brown fox (...)

str_random()

The str_random function generates a random string of the specified length. This function uses PHP's random_bytes function:

$random = str_random(40);

str_replace_array()

The str_replace_array function replaces a given value in the string sequentially using an array:

$string = 'The event will take place between ? and ?';

$replaced = str_replace_array('?', ['8:30', '9:00'], $string);

// The event will take place between 8:30 and 9:00

str_replace_first()

The str_replace_first function replaces the first occurrence of a given value in a string:

$replaced = str_replace_first('the', 'a', 'the quick brown fox jumps over the lazy dog');

// a quick brown fox jumps over the lazy dog

str_replace_last()

The str_replace_last function replaces the last occurrence of a given value in a string:

$replaced = str_replace_last('the', 'a', 'the quick brown fox jumps over the lazy dog');

// the quick brown fox jumps over a lazy dog

str_slug()

The str_slug function generates a URL friendly "slug" from the given string:

$slug = str_slug('Laravel 5 Framework', '-');

// laravel-5-framework

str_start()

The str_start function adds a single instance of the given value to a string if it does not already start with the value:

$adjusted = str_start('this/string', '/');

// /this/string

$adjusted = str_start('/this/string', '/');

// /this/string

studly_case()

The studly_case function converts the given string to StudlyCase:

$converted = studly_case('foo_bar');

// FooBar

title_case()

The title_case function converts the given string to Title Case:

$converted = title_case('a nice title uses the correct case');

// A Nice Title Uses The Correct Case

Contributing

Feel free to contribute through PR.

See CODE OF CONDUCT for details.

License

This package operates under the MIT License (MIT). See the LICENSE file for details.

phannaly/laravel-helpers 适用场景与选型建议

phannaly/laravel-helpers 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 11.78k 次下载、GitHub Stars 达 4, 最近一次更新时间为 2018 年 09 月 13 日, 在 PHP 生态内属于活跃度较高的组件。

它主要适用于以下技术方向: 「helpers」 「array」 「string」 「laravel」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。

我们在过去多个企业项目中使用过 phannaly/laravel-helpers 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。

围绕 phannaly/laravel-helpers 我们能提供哪些服务?
定制开发 / 二次开发

基于 phannaly/laravel-helpers 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

  • 总下载量: 11.78k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 4
  • 点击次数: 1
  • 依赖项目数: 1
  • 推荐数: 0

GitHub 信息

  • Stars: 4
  • Watchers: 1
  • Forks: 1
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2018-09-13