Помощники

Содержание:


Введение

Ларавел включает набор глобальных "функций-помощников" PHP. Многие из этих функций используются самим фреймворком. И конечно же вы можете свободно их использовать, если найдёте их полезными в вашем приложении.


Доступные методы

Массивы & Объекты

Пути

Строки

URL-адреса

Прочие помощники

Список методов

Массивы & Объекты

Arr::add()

Метод Arr::add добавляет данную пару ключ / значение в массив, если данного ключа до сих пор нет в массиве или его значение null:

use Illuminate\Support\Arr;

$array = Arr::add(['name' => 'Desk'], 'price', 100);

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

$array = Arr::add(['name' => 'Desk', 'price' => null], 'price', 100);

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

Arr::collapse()

Метод Arr::collapse "складывает" многомерные массивы в одномерный:

use Illuminate\Support\Arr;

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

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

Arr::divide()

Метод Arr::divide возвращает два массива, один содержит ключи, а втрой содержит значения данного массива:

use Illuminate\Support\Arr;

[$keys, $values] = Arr::divide(['name' => 'Desk']);

// $keys: ['name']

// $values: ['Desk']

Arr::dot()

Метод Arr::dot преобразует много-мерные массивы в одноуровневый массив, который использует пунктуация с точками для показа исходной глубины:

use Illuminate\Support\Arr;

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

$flattened = Arr::dot($array);

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

Arr::except()

Метод Arr::except убирает данную пару ключ / значение из массива:

use Illuminate\Support\Arr;

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

$filtered = Arr::except($array, ['price']);

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

Arr::first()

Метод Arr::first возвращает первый элемент массива, который прошел проверку на правду:

use Illuminate\Support\Arr;

$array = [100, 200, 300];

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

// 200

Значеине по умолчанию может быть также передано как третий параметр в метод. Это значение вернётся, если тест-проверку на истину не будет передано значение:

use Illuminate\Support\Arr;

$first = Arr::first($array, $callback, $default);

Arr::flatten()

Метод Arr::flatten превращает многомерный массив в одномерный массив:

use Illuminate\Support\Arr;

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

$flattened = Arr::flatten($array);

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

Arr::forget()

Метод Arr::forget убирает данную пару ключ / значение из глубоко-сгруппированных массивов используя пунктуация с точками:

use Illuminate\Support\Arr;

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

Arr::forget($array, 'products.desk');

// ['products' => []]

Arr::get()

Метод Arr::get получает значение из глубоко-вложенного массива, используя пунктуация с точками:

use Illuminate\Support\Arr;

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

$price = Arr::get($array, 'products.desk.price');

// 100

Метод Arr::get метод также принимате базовое значение, которое вернётся в случае, если указанный ключ не найден:

use Illuminate\Support\Arr;

$discount = Arr::get($array, 'products.desk.discount', 0);

// 0

Arr::has()

Метод Arr::has проверяет есть ли данный элемент или элемены в массиве и использует пунктуация с точками:

use Illuminate\Support\Arr;

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

$contains = Arr::has($array, 'product.name');

// true

$contains = Arr::has($array, ['product.price', 'product.discount']);

// false

Arr::last()

Метод Arr::last возвращает последний элемент массива, который прошёл проверку теста на истину:

use Illuminate\Support\Arr;

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

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

// 300

Базовое значеине может быть передано в качестве третьего аргумента в метод. Оно вернётся в случае, если ни одно значение не прошло тест:

use Illuminate\Support\Arr;

$last = Arr::last($array, $callback, $default);

Arr::only()

Метод Arr::only возвращает только указанные пары ключ / значение из данного массива:

use Illuminate\Support\Arr;

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

$slice = Arr::only($array, ['name', 'price']);

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

Arr::pluck()

Метод Arr::pluck получает все значения для данного ключа из массива:

use Illuminate\Support\Arr;

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

$names = Arr::pluck($array, 'developer.name');

// ['Taylor', 'Abigail']

Вы также можете указать какие ключи вы хотите присвоить результирующему массиву:

use Illuminate\Support\Arr;

$names = Arr::pluck($array, 'developer.name', 'developer.id');

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

Arr::prepend()

Метод Arr::prepend добавить элемент в начало массива:

use Illuminate\Support\Arr;

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

$array = Arr::prepend($array, 'zero');

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

Если необходимо, вы можете указать ключ, который будет использоваться для данного значения:

use Illuminate\Support\Arr;

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

$array = Arr::prepend($array, 'Desk', 'name');

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

Arr::pull()

Метод Arr::pull возвращает и убирает пару ключ / значение из массива:

use Illuminate\Support\Arr;

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

$name = Arr::pull($array, 'name');

// $name: Desk

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

Значение по умолчанию может передано в качестве третьего аргумента в метод. Это значение вернётся, если указанный ключ не существует:

use Illuminate\Support\Arr;

$value = Arr::pull($array, $key, $default);

Arr::random()

Метод Arr::random возвращает случайное значение из массива:

use Illuminate\Support\Arr;

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

$random = Arr::random($array);

// 4 - (retrieved randomly)

Вы также можете указать число элементов для возврата в качестве второго аргумента. Нужно отметить, что всегда будет возвращаться массив, даже если там всего один элемент:

use Illuminate\Support\Arr;

$items = Arr::random($array, 2);

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

Arr::set()

Метод Arr::set устанавливает значения для глубоко-вложенного массива, используя пунктуация с точками:

use Illuminate\Support\Arr;

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

Arr::set($array, 'products.desk.price', 200);

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

Arr::sort()

Метод Arr::sort сортирует массив в соответсвии с их значениями:

use Illuminate\Support\Arr;

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

$sorted = Arr::sort($array);

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

Вы также можете сортировать массив как результат данного замыкания:

use Illuminate\Support\Arr;

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

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

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

Arr::sortRecursive()

Метод Arr::sortRecursive рекурсивно сортирует массив используя функцию sort для числовых вложенных массивов и функцию ksort для ассоциативных:

use Illuminate\Support\Arr;

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

$sorted = Arr::sortRecursive($array);

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

Arr::where()

Метод Arr::where фильтрует массив используя замыкание:

use Illuminate\Support\Arr;

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

$filtered = Arr::where($array, function ($value, $key) {
    return is_string($value);
});

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

Arr::wrap()

Метод Arr::wrap обёртывает данное значение в массив. Если данное значение уже является массивом, то оно не изменится:

use Illuminate\Support\Arr;

$string = 'Laravel';

$array = Arr::wrap($string);

// ['Laravel']

Если данное значение null, вернётся пустое значение:

use Illuminate\Support\Arr;

$nothing = null;

$array = Arr::wrap($nothing);

// []

data_fill()

Функция data_fill устанавливает отсутсвующее значение внутри вложенного массива, используя пунктуация с точками:

$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]]]

Также функция принимает звёздочки в качестве подставных знаков, и заполнит целевой массив соответсвующим образом:

$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()

Функция data_get получает значение из многомерного массива при помощи пунктуации с точками:

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

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

// 100

Функция data_get также принимает значение по умолчанию, которое вернётся, если указанный ключ не будет найден:

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

// 0

Еще функция принимает звёздочки в качестве подставных знаков, которые могут взаимодействовать с любым массивом или объектом:

$data = [
    'product-one' => ['name' => 'Desk 1', 'price' => 100],
    'product-two' => ['name' => 'Desk 2', 'price' => 150],
];

data_get($data, '*.name');

// ['Desk 1', 'Desk 2'];

data_set()

Функция data_set устанавливает значение внутри вложенного массива используя пунктуацию с точками:

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

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

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

Эта функция также принимает подстановочные знаки и устанавливает значения для целевого объекта:

$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],
        ],
    ]
*/

По умолчанию, любые существующие значения могут быть перезаписаны. Если вы хотите устанавливать значения только в случае, когда не существует, вам следует передать false в качестве 4-го аргумента:

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

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

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

head()

Функция code>head возвращает первый элемент для данного массива:

$array = [100, 200, 300];

$first = head($array);

// 100

last()

Функция last возвращает последний элемент данного массива:

$array = [100, 200, 300];

$last = last($array);

// 300

Пути

app_path()

Функция app_path возвращает полный путь к папке app. Вы можете также использовать функцию app_path для генерации полного пути к файлу относительно директории приложения:

$path = app_path();

$path = app_path('Http/Controllers/Controller.php');

base_path()

Функция base_path возвращает полный путь к корневой папке проекта. Вы можете использовать функцию base_path для генерации полного пути к файлу в привязке к корневой директории проекта:

$path = base_path();

$path = base_path('vendor/bin');

config_path()

Функция config_path возвращает полный путь к директории config. Вы также можете использовать функцию config_path для генерации полного пути к данному файлу внутри директории конфигурации приложения:

$path = config_path();

$path = config_path('app.php');

database_path()

Функция database_path полный путь к папке database. Вы можете также использовать функцию database_path, чтобы сгенерировать полный путь для данного файла внутри директории базы данных:

$path = database_path();

$path = database_path('factories/UserFactory.php');

mix()

Функция mix возвращает путь к файлам микса:

$path = mix('css/app.css');

public_path()

Функция public_path возвращает полный путь к папке public. Можно также использовать функцию public_path, чтобы сгенерировать полный путь к данному файлу внутри публичной директории:

$path = public_path();

$path = public_path('css/app.css');

resource_path()

Функция resource_path возвращает полный путь к директории resources. Вы можете исполььзовать функцию resource_path для того, чтобы сгенерировать полный путь к данному файлу внутри директории resources:

$path = resource_path();

$path = resource_path('sass/app.scss');

storage_path()

Функция storage_path возвращает полный путь к директории storage. Вы можете использовать также функцию storage_path чтобы сгенерировать полный путь к данному файлу внутри директории storage:

$path = storage_path();

$path = storage_path('app/file.txt');

Строки

__()

Функция __ переводит данное выражение или ключ выражения в помощью файлов локализации:

echo __('Welcome to our application');

echo __('messages.welcome');

Если указанные строки не существуют, функция __ вернёт представленное значение. Поэтому, для примера выше, функция __ вернёт messages.welcome, если такой ключ перевода не существует.

class_basename()

Функция class_basename возвращает имя данного класса без полного пути пространсва имён:

$class = class_basename('Foo\Bar\Baz');

// Baz

e()

Функция e запускает функцию PHP htmlspecialchars с опцией double_encode установленной в true по умолчанию:

echo e('<html>foo</html>');

// &lt;html&gt;foo&lt;/html&gt;

preg_replace_array()

Функция preg_replace_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

Str::after()

Метод Str::after возвращает всё, что находится после данного значения в строке:

use Illuminate\Support\Str;

$slice = Str::after('This is my name', 'This is');

// ' my name'

Str::before()

Метод Str::before возвращает всё, что находится до данного значения в строке:

use Illuminate\Support\Str;

$slice = Str::before('This is my name', 'my name');

// 'This is '

Str::camel()

Метод Str::camel преобразует данную строку в camelCase:

use Illuminate\Support\Str;

$converted = Str::camel('foo_bar');

// fooBar

Str::contains()

Метод Str::contains определяет содержит ли строка данное значение (случай чувствительного поиска):

use Illuminate\Support\Str;

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

// true

Вы можете передать массив значений для определения того, что данная строка содержит любое из значений:

use Illuminate\Support\Str;

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

// true

Str::containsAll()

Метод Str::containsAll определяет, что данная строка содержит все значения:

use Illuminate\Support\Str;

$containsAll = Str::containsAll('This is my name', ['my', 'name']);

// true

Str::endsWith()

Метод Str::endsWith определяет, что данная строка заканчивается на данное значение:

use Illuminate\Support\Str;

$result = Str::endsWith('This is my name', 'name');

// true

Str::finish()

Метод Str::finish добавляет указанное значение строки, если оно до сих пор не заканчивается на данное значение:

use Illuminate\Support\Str;

$adjusted = Str::finish('this/string', '/');

// this/string/

$adjusted = Str::finish('this/string/', '/');

// this/string/

Str::is()

Метод Str::is определяет, что данное значение совпадает по данному паттерну. Можно использовать звёздочки в качестве подстановочных знаков:

use Illuminate\Support\Str;

$matches = Str::is('foo*', 'foobar');

// true

$matches = Str::is('baz*', 'foobar');

// false

Str::kebab()

Метод Str::kebab преобразует данную строку в kebab-case:

use Illuminate\Support\Str;

$converted = Str::kebab('fooBar');

// foo-bar

Str::limit()

Метод Str::limit опрезает данную строку до указанной длины:

use Illuminate\Support\Str;

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

// The quick brown fox...

Можно также передавать 3-й аргумент, чтобы дописать его в конец:

use Illuminate\Support\Str;

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

// The quick brown fox (...)

Str::orderedUuid()

Метод Str::orderedUuid генерирует временную отметку. UUID которую можно эффективно хранить в индексируемом столбце базы данных:

use Illuminate\Support\Str;

return (string) Str::orderedUuid();

Str::plural()

Метод Str::plural преобразовывает строку во множественную форму. Эта функция на текущий момент поддерживает только английский язык:

use Illuminate\Support\Str;

$plural = Str::plural('car');

// cars

$plural = Str::plural('child');

// children

Вы можете предоставить число в качестве второго аргумента в функцию для извлечения одиночной или множественной формы строки:

use Illuminate\Support\Str;

$plural = Str::plural('child', 2);

// children

$plural = Str::plural('child', 1);

// child

Str::random()

Метод Str::random генерирует случайную строку указанной длины. Эта функция использует функцию random_bytes:

use Illuminate\Support\Str;

$random = Str::random(40);

Str::replaceArray()

Метод Str::replaceArray последовательно заменяет данное значение в строке используя массив:

use Illuminate\Support\Str;

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

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

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

Str::replaceFirst()

Метод Str::replaceFirst перемещает первое появление значения в строки:

use Illuminate\Support\Str;

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

// a quick brown fox jumps over the lazy dog

Str::replaceLast()

Метод Str::replaceLast заменяет последнее появление данного значения в строке:

use Illuminate\Support\Str;

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

// the quick brown fox jumps over a lazy dog

Str::singular()

Метод Str::singular преобразует строку в одиночнкую форму. На текущий момент поддерживает только английский язык:

use Illuminate\Support\Str;

$singular = Str::singular('cars');

// car

$singular = Str::singular('children');

// child

Str::slug()

Метод Str::slug генерирует дружелюбный человекоподобный URL из даной строки:

use Illuminate\Support\Str;

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

// laravel-5-framework

Str::snake()

Метод Str::snake преобразует данную стркоу в snake_case (использует нижнее подчёркивание для разделения слов):

use Illuminate\Support\Str;

$converted = Str::snake('fooBar');

// foo_bar

Str::start()

Метод Str::start добавляет указанное значение в начало строки, в случае если оно до сих пор не начинается с этого значения:

use Illuminate\Support\Str;

$adjusted = Str::start('this/string', '/');

// /this/string

$adjusted = Str::start('/this/string', '/');

// /this/string

Str::startsWith()

Метод Str::startsWith определяет, что данная строка начинается с данного значения:

use Illuminate\Support\Str;

$result = Str::startsWith('This is my name', 'This');

// true

Str::studly()

Метод Str::studly преобразует данную строку в StudlyCase (Слова пишутся слитно, но начинаются с заглавной буквы):

use Illuminate\Support\Str;

$converted = Str::studly('foo_bar');

// FooBar

Str::title()

Метод Str::title преобразует данную строку в Title Case (Все слова с заглавной буквы):

use Illuminate\Support\Str;

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

// A Nice Title Uses The Correct Case

Str::uuid()

Метод Str::uuid генерирует UUID (4 версии):

use Illuminate\Support\Str;

return (string) Str::uuid();

Str::words()

Метод Str::words накладывает ограничение на количество слов в строке:

use Illuminate\Support\Str;

return Str::words('Perfectly balanced, as all things should be.', 3, ' >>>');

// Perfectly balanced, as >>>

trans()

Функция trans переводит данный ключ с помощью файлов локализации:

echo trans('messages.welcome');

Если указаанный ключ перевода не существует, функция trans вернёт данный ключ. Поэтому, для примера выше, фукнкция trans должна вернуть messages.welcome, если ключа перевода не существует.

trans_choice()

Функцию trans_choice гибко переводит данный ключ:

echo trans_choice('messages.notifications', $unreadCount);

Если указанного ключа не существуют, функция trans_choice вернёт данный ключ. Для примера выше, функция должна вернуть messages.notifications, если перевода нет.

URLs

action()

Функция action генерирует URL для действия конроллера. Вам не нужно передавать полный путь пространства имён контроллера. Вместо этого, передайте имя класса контроллера, относительно пространсва имён App\Http\Controllers:

$url = action('HomeController@index');

$url = action([HomeController::class, 'index']);

Если метод принимает параметры пути, вы можете передать их в качестве второго аргумента в метод:

$url = action('UserController@profile', ['id' => 1]);

asset()

Функция asset генерирует URL для актива, используя текущую схему запроса (HTTP or HTTPS):

$url = asset('img/photo.jpg');

Вы можете сконфигурировать URL хоста актива путём установления переменной ASSET_URL в файле конфигурации .env. Это может быть полезным, если ваш хост активов располагается на внешнем сервисе, таком как Amazon S3:

// ASSET_URL=http://example.com/assets

$url = asset('img/photo.jpg'); // http://example.com/assets/img/photo.jpg

route()

Функция route генерирует URL для данного имени пути:

$url = route('routeName');

Если маршрут принимает параметры, вы можете передать их в качестве второго аргумента в метод:

$url = route('routeName', ['id' => 1]);

По умолчанию, функция route генерирует абсолютный URL. Есил вы хотите сгенерировать относительный URL, вы можете передать false в качестве третьего аргумента:

$url = route('routeName', ['id' => 1], false);

secure_asset()

Функция secure_asset генерирует URL для актива используя HTTPS:

$url = secure_asset('img/photo.jpg');

secure_url()

Функция secure_url генерирует защищённый HTTPS URL для данного пути:

$url = secure_url('user/profile');

$url = secure_url('user/profile', [1]);

url()

Функция url генерирует полный URL-адрес для данного пути:

$url = url('user/profile');

$url = url('user/profile', [1]);

Если нет пути, вернётся экземпляр Illuminate\Routing\UrlGenerator:

$current = url()->current();

$full = url()->full();

$previous = url()->previous();

Прочие функции

abort()

Функция abort выкидывает исключение HTTP, которое будет выведено обработчиком исключений:

abort(403);

Вы можете также предоставить текск исключения, а также собственные заголовки ответа:

abort(403, 'Unauthorized.', $headers);

abort_if()

Функция abort_if выбарасывает исключение HTTP, если данное логисческое выражение истина:

abort_if(! Auth::user()->isAdmin(), 403);

Как и в случае с методом abort, вы можете в качестве третьего аргумента передать текст ответа и массив заголовков четвёртым аргументом.

abort_unless()

Функция abort_unless выбрасывает исключение HTTP, если данное логическое выражение false:

abort_unless(Auth::user()->isAdmin(), 403);

Как и метод abort, вы можете предоставить текст исключения третьим аргументом и заголовкой четвёртым аргументом.

app()

Функция app возвращает экземпляр сервис контейнера:

$container = app();

Вы можете передать класс или имя интерфейса для получения его из контейнера:

$api = app('HelpSpot\API');

auth()

Функция auth возвращает экземпляр аутентификатора. Вы можете использовать его вместо фасада Auth для удобства:

$user = auth()->user();

Если необходимо, вы можете указать, какой шлюз необходимо использовать для доступа:

$user = auth('admin')->user();

back()

Функция back генерирует перенаправление на предыдущую локацию:

return back($status = 302, $headers = [], $fallback = false);

return back();

bcrypt()

Функция bcrypt преобразует данное значение в хэш используя Bcrypt. Вы можете использовать эту функцию как альтернативу фасаду Hash:

$password = bcrypt('my-secret-password');

blank()

Функция blank проверяет, что данное значение является "пустым":

blank('');
blank('   ');
blank(null);
blank(collect());

// true

blank(0);
blank(true);
blank(false);

// false

Можно использовать метод filled для получения обратного результата:

broadcast()

Функция broadcast транслирует событие для его слушателей:

broadcast(new UserRegistered($user));

cache()

Функцию code>cache для получения значений из кэша. Если данный ключ не существует в кэше, вернётся необязательное значение по умолчанию:

$value = cache('key');

$value = cache('key', 'default');

Вы можете добавить элементы в кэш путём передачи массива ключ / значение в функцию. Вам также передать количество секунд или продолжительность времени, при котором значение кэша следует считать действительным:

cache(['key' => 'value'], 300);

cache(['key' => 'value'], now()->addSeconds(10));

class_uses_recursive()

Функция class_uses_recursive возвращает все трейты, которые используются классом, включая трейты используемые родительскими классами:

$traits = class_uses_recursive(App\User::class);

collect()

Функция collect создаёт экземпляр коллеции из данного значения:

$collection = collect(['taylor', 'abigail']);

config()

Функция config получает значение переменной конфигурации. Доступ к различным значениям переменной можно получить используя пунктуацию с точками, которая включает имя файла и опции, к которой вы хотите получить доступ. Также можно указать значение по умолчанию, которое вернётся в случае, если указанной опции не существует:

$value = config('app.timezone');

$value = config('app.timezone', $default);

Вы можете установить переменные конфигурации в режиме реального времени путём передачи массива пар ключ / значение:

config(['app.debug' => true]);

cookie()

Функция cookie создаёт новый экземпляр куки:

$cookie = cookie('name', 'value', $minutes);

csrf_field()

Функция csrf_field генерирует спрятанное HTML поле, которое содержит значение CSRF токена. Например, с использованием синтаксиса Blade:

{{ csrf_field() }}

csrf_token()

Функция csrf_token получает значение данного CSRF токена:

$token = csrf_token();

dd()

Функция dd сбрасывает данные переменные и заканчивает выполнение скрипта:

dd($value);

dd($value1, $value2, $value3, ...);

Если вы не хотите останавливать выполнение вашего скрипта, используйте функцию dump вместо dd.

decrypt()

Функция decrypt расшифровывает данное значение используя шифровальщик Ларавел:

$decrypted = decrypt($encrypted_value);

dispatch()

Функция dispatch добавляет данное задание в очередь Ларавел:

dispatch(new App\Jobs\SendEmails);

dispatch_now()

Функция dispatch_now выполняет данное задание мгновенно и возвращает значение из метода handle:

$result = dispatch_now(new App\Jobs\SendEmails);

dump()

Функция dump показывает данные переменные:

dump($value);

dump($value1, $value2, $value3, ...);

Если вы хотите остановить выполнение скрипта после показа переменных, используйте функцию dd вместо.

Можно также использовать команду Artisan dump-server для того, чтобы перехватить всех вызовы dump и показать их в окне консоли, вместо браузера.

encrypt()

Функция encrypt зашифровывает данное значение используя шифровальщик Ларавел:

$encrypted = encrypt($unencrypted_value);

env()

Функция env получает значение переменной окружения или возвращает значение по умолчанию:

$env = env('APP_ENV');

// Returns 'production' if APP_ENV is not set...
$env = env('APP_ENV', 'production');
Если вы выполните команду config:cache во время процесса разработки, вы должны быть уверены, что вы вызываете функцию env изнутри ваших файлов конфигурации. После кэширования конфигурации, файл .env не будет загружаться и обращение к функции env вернёт null.

event()

Функция event отправляет данное событие к слушателям:

event(new UserRegistered($user));

factory()

Функция factory создаёт построитель фабрики моделей для данного класса, имени, и количества. Это можно использовать при тестировании или наполнении баз данных.

$user = factory(App\User::class)->make();

filled()

Функция filled проверяет, что данное значение не пустое:

filled(0);
filled(true);
filled(false);

// true

filled('');
filled('   ');
filled(null);
filled(collect());

// false

Для использования обратной версии функции filled, обратитесь к методу blank.

info()

Функция info напишет информацию в журнал:

info('Some helpful information!');

Также в функцию можно передавать массив данных контекста:

info('User login attempt failed.', ['id' => $user->id]);

logger()

Функцию logger можно использовать для того, чтобы писать сообщения уровня debug в журнал:

logger('Debug message');

Массив данных контекста можно также передать в функцию:

logger('User has logged in.', ['id' => $user->id]);

Если не будет передано значение в функцию, вернётся экзепляр логгера.

logger()->error('You are not allowed here.');

method_field()

Функция method_field генерирует скрытое поле HTML, которое содержит значение Http-команды формы. Например, используя синтаксис Blade:

<form method="POST">
    {{ method_field('DELETE') }}
</form>

now()

Функция now создает новый экземпляр Illuminate\Support\Carbon для текущего времени:

$now = now();

old()

Функция old получает старое значение переменной, которое подгружается вместе с флеш-данными сессии:

$value = old('value');

$value = old('value', 'default');

optional()

Функция optional принимает любые аргументы и позволяет вам получать свойства или вызывать методы для этого объекта. Если данный объект null, то и методы и свойства будут возвращать null вместо ошибки:

return optional($user->address)->street;

{!! old('name', optional($user)->name) !!}

Функция code>optional также принимает замыкание в качестве второго аргумента. Замыкание будет запущено, если значение предоставленное в качестве первого аргумента не null:

return optional(User::find($id), function ($user) {
    return new DummyUser;
});

policy()

Метод policy получает экземпляр policy для данного класса:

$policy = policy(App\User::class);

redirect()

Функция redirect возвращает перенаправление HTTP ответ, или возвращает экземпляр экземпляр редиректора, если вызов без аргументов:

return redirect($to = null, $status = 302, $headers = [], $secure = null);

return redirect('/home');

return redirect()->route('route.name');

report()

Функция report сообщит об исключении используя ваш метод report обработчика исключений:

report($e);

request()

Функция request возвращает текущий экземпляр запроса, или получает входной элемент:

$request = request();

$value = request('key', $default);

rescue()

Функция code>rescue выполняет данное замыкание и ловит любые исключения, которые произошли во время выполнения. Все исключения будут отсылаться в метод обработчика исключений report. Однако запрос продолжит своё выполнение:

return rescue(function () {
    return $this->method();
});

Вы также можете передать второй аргумент в функцию rescue. Этот аргумент будет значением по умолчанию, если появится исключение во время выполнения Замыкания:

return rescue(function () {
    return $this->method();
}, false);

return rescue(function () {
    return $this->method();
}, function () {
    return $this->failure();
});

resolve()

Функция resolve извлекает данные класса или имя интерфейса в экземпляр используя сервис контейнер:

$api = resolve('HelpSpot\API');

response()

Функция response создаёт экземпляр ответа, или получает экземпляр фабрики ответа:

return response('Hello World', 200, $headers);

return response()->json(['foo' => 'bar'], 200, $headers);

retry()

Функция retry пытается выплнить указанные код до тех пор, пока не будет достигнут лимит попыток. Если не будет исключений, вернётся значение. Если появится исключение, автоматически будет запущен повтор. Если достигнут лимит попыток, будет выкинуто исключение:

return retry(5, function () {
    // Attempt 5 times while resting 100ms in between attempts...
}, 100);

session()

Функция session используется для получения или установки значений сессии.

$value = session('key');

Вы можете установть значения путём передачи массива пар ключ / значение в функцию:

session(['chairs' => 7, 'instruments' => 3]);

Если не передать значение в функцию, вернётся хранилище сеанса:

$value = session()->get('key');

session()->put('key', $value);

tap()

Функция tap принимает два аргумента: произвольное значение и Замыкание. Значение будет передано в Замыкание, а после его вернёт функция tap. Возвращаемое значение Замыкания несущественно:

$user = tap(User::first(), function ($user) {
    $user->name = 'taylor';

    $user->save();
});

Если Замыкание не передаётся в функцию tap, вы можете вызвать любой метод для данного $value. Возвращаемое значение вызванного метод всегда будет $value, вне зависимости от того, что метод типично возвращает. Например, метод Eloquent update обычно возвращает число. Однако, можно сделать так, чтобы сама модель. Для этого необходимо вызов провдить через функцию tap:

$user = tap($user)->update([
    'name' => $name,
    'email' => $email,
]);

Чтобы добавить метод tap в класс, вы можете добавить трейт Illuminate\Support\Traits\Tappable. Метод этого трейта tap принимает Замыкание в качестве единственного аргумента. Экземпляр объекта будет передан в Замыкание, и после чего будет возвращен через метод tap:

return $user->tap(function ($user) {
    //
});

throw_if()

Функция throw_if выбрасывает исключение, если логическое выражение будет true:

throw_if(! Auth::user()->isAdmin(), AuthorizationException::class);

throw_if(
    ! Auth::user()->isAdmin(),
    AuthorizationException::class,
    'You are not allowed to access this page'
);

throw_unless()

Функция throw_unless выкидывает данное исключение, если логическое выражение будет false:

throw_unless(Auth::user()->isAdmin(), AuthorizationException::class);

throw_unless(
    Auth::user()->isAdmin(),
    AuthorizationException::class,
    'You are not allowed to access this page'
);

today()

Функция today создаёт новый экзмепляр Illuminate\Support\Carbon для данное даты:

$today = today();

trait_uses_recursive()

Функция trait_uses_recursive возвращает все трейты, которые были использованы трейтом:

$traits = trait_uses_recursive(\Illuminate\Notifications\Notifiable::class);

transform()

Функция transform выполняет Замыкание для данного значения, если значение не пустое и возвращает результат Closure:

$callback = function ($value) {
    return $value * 2;
};

$result = transform(5, $callback);

// 10

Значение по умолчанию или Замыкание могут быть также переданы как третий параметр в метод. Это значение вернётся, если данное значение пустое:

$result = transform(null, $callback, 'The value is blank');

// The value is blank

validator()

Функция validator создаёт новый экземпляр validator с данными аргументами. Вы можете использовать их вместо фасада Validator для удобства:

$validator = validator($data, $rules, $messages);

value()

Функция value возвращает представленное значение. Если передать Замыкание, оно будет выполнено и вернётся его результат:

$result = value(true);

// true

$result = value(function () {
    return false;
});

// false

view()

Функция view извлекает экземпляр view:

return view('auth.login');

with()

Функция with возвращает указанное значение. Если передать Замыкание в качестве второго аргумента в функция, Замыкание будет выполнено и вернётся его результат ещё текст:

$callback = function ($value) {
    return (is_numeric($value)) ? $value * 2 : 0;
};

$result = with(5, $callback);

// 10

$result = with(null, $callback);

// 0

$result = with(5, null);

// 5