PHP Classes

File: vendor/illuminate/collections/helpers.php

Recommend this page to a friend!
  Packages of OmDiaries   Laravel AI Email Assistant   vendor/illuminate/collections/helpers.php   Download  
File: vendor/illuminate/collections/helpers.php
Role: Example script
Content type: text/plain
Description: Example script
Class: Laravel AI Email Assistant
Generate an email message with the OpenAI GPT API
Author: By
Last change:
Date: 4 months ago
Size: 6,162 bytes
 

Contents

Class file image Download
<?php

use Illuminate\Support\Arr;
use
Illuminate\Support\Collection;

if (!
function_exists('collect')) {
   
/**
     * Create a collection from the given value.
     *
     * @template TKey of array-key
     * @template TValue
     *
     * @param \Illuminate\Contracts\Support\Arrayable<TKey, TValue>|iterable<TKey, TValue>|null $value
     * @return \Illuminate\Support\Collection<TKey, TValue>
     */
   
function collect($value = [])
    {
        return new
Collection($value);
    }
}

if (!
function_exists('data_fill')) {
   
/**
     * Fill in data where it's missing.
     *
     * @param mixed $target
     * @param string|array $key
     * @param mixed $value
     * @return mixed
     */
   
function data_fill(&$target, $key, $value)
    {
        return
data_set($target, $key, $value, false);
    }
}

if (!
function_exists('data_get')) {
   
/**
     * Get an item from an array or object using "dot" notation.
     *
     * @param mixed $target
     * @param string|array|int|null $key
     * @param mixed $default
     * @return mixed
     */
   
function data_get($target, $key, $default = null)
    {
        if (
is_null($key)) {
            return
$target;
        }

       
$key = is_array($key) ? $key : explode('.', $key);

        foreach (
$key as $i => $segment) {
            unset(
$key[$i]);

            if (
is_null($segment)) {
                return
$target;
            }

            if (
$segment === '*') {
                if (
$target instanceof Collection) {
                   
$target = $target->all();
                } elseif (!
is_iterable($target)) {
                    return
value($default);
                }

               
$result = [];

                foreach (
$target as $item) {
                   
$result[] = data_get($item, $key);
                }

                return
in_array('*', $key) ? Arr::collapse($result) : $result;
            }

            if (
Arr::accessible($target) && Arr::exists($target, $segment)) {
               
$target = $target[$segment];
            } elseif (
is_object($target) && isset($target->{$segment})) {
               
$target = $target->{$segment};
            } else {
                return
value($default);
            }
        }

        return
$target;
    }
}

if (!
function_exists('data_set')) {
   
/**
     * Set an item on an array or object using dot notation.
     *
     * @param mixed $target
     * @param string|array $key
     * @param mixed $value
     * @param bool $overwrite
     * @return mixed
     */
   
function data_set(&$target, $key, $value, $overwrite = true)
    {
       
$segments = is_array($key) ? $key : explode('.', $key);

        if ((
$segment = array_shift($segments)) === '*') {
            if (!
Arr::accessible($target)) {
               
$target = [];
            }

            if (
$segments) {
                foreach (
$target as &$inner) {
                   
data_set($inner, $segments, $value, $overwrite);
                }
            } elseif (
$overwrite) {
                foreach (
$target as &$inner) {
                   
$inner = $value;
                }
            }
        } elseif (
Arr::accessible($target)) {
            if (
$segments) {
                if (!
Arr::exists($target, $segment)) {
                   
$target[$segment] = [];
                }

               
data_set($target[$segment], $segments, $value, $overwrite);
            } elseif (
$overwrite || ! Arr::exists($target, $segment)) {
               
$target[$segment] = $value;
            }
        } elseif (
is_object($target)) {
            if (
$segments) {
                if (! isset(
$target->{$segment})) {
                   
$target->{$segment} = [];
                }

               
data_set($target->{$segment}, $segments, $value, $overwrite);
            } elseif (
$overwrite || ! isset($target->{$segment})) {
               
$target->{$segment} = $value;
            }
        } else {
           
$target = [];

            if (
$segments) {
               
data_set($target[$segment], $segments, $value, $overwrite);
            } elseif (
$overwrite) {
               
$target[$segment] = $value;
            }
        }

        return
$target;
    }
}

if (!
function_exists('data_forget')) {
   
/**
     * Remove / unset an item from an array or object using "dot" notation.
     *
     * @param mixed $target
     * @param string|array|int|null $key
     * @return mixed
     */
   
function data_forget(&$target, $key)
    {
       
$segments = is_array($key) ? $key : explode('.', $key);

        if ((
$segment = array_shift($segments)) === '*' && Arr::accessible($target)) {
            if (
$segments) {
                foreach (
$target as &$inner) {
                   
data_forget($inner, $segments);
                }
            }
        } elseif (
Arr::accessible($target)) {
            if (
$segments && Arr::exists($target, $segment)) {
               
data_forget($target[$segment], $segments);
            } else {
               
Arr::forget($target, $segment);
            }
        } elseif (
is_object($target)) {
            if (
$segments && isset($target->{$segment})) {
               
data_forget($target->{$segment}, $segments);
            } elseif (isset(
$target->{$segment})) {
                unset(
$target->{$segment});
            }
        }

        return
$target;
    }
}

if (!
function_exists('head')) {
   
/**
     * Get the first element of an array. Useful for method chaining.
     *
     * @param array $array
     * @return mixed
     */
   
function head($array)
    {
        return
reset($array);
    }
}

if (!
function_exists('last')) {
   
/**
     * Get the last element from an array.
     *
     * @param array $array
     * @return mixed
     */
   
function last($array)
    {
        return
end($array);
    }
}

if (!
function_exists('value')) {
   
/**
     * Return the default value of the given value.
     *
     * @param mixed $value
     * @param mixed ...$args
     * @return mixed
     */
   
function value($value, ...$args)
    {
        return
$value instanceof Closure ? $value(...$args) : $value;
    }
}