phannaly/laravel-helpers

The PHP helpers function extract from Laravel

v1.0.3 2018-09-15 07:08 UTC

This package is auto-updated.

Last update: 2024-04-29 03:47:16 UTC


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.