Версия фреймворка: 6.x 5.4 4.2

Хелперы

Введение

Laravel включает множество глобальных вспомогательных PHP-функций ("хелперов"). Большинство таких функций используются самим фреймворком; однако, вы можете использовать их в собственных приложениях, если сочтете их удобными.

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

Массивы и объекты

Пути

Строки

URL

Прочее

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

Массивы и объекты

Arr::add() {#collection-method .first-collection-method}

Метод 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() {#collection-method}

Метод Arr::collapse() объединяет массив массивов в единый массив: Функция array_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::crossJoin() {#collection-method}

Метод Arr::crossJoin перекрёстно объединяет переданные массивы, возвращая декартово произведение всех возможных перестановок:

use Illuminate\Support\Arr;

$matrix = Arr::crossJoin([1, 2], ['a', 'b']);

/*
    [
        [1, 'a'],
        [1, 'b'],
        [2, 'a'],
        [2, 'b'],
    ]
*/

$matrix = Arr::crossJoin([1, 2], ['a', 'b'], ['I', 'II']);

/*
    [
        [1, 'a', 'I'],
        [1, 'a', 'II'],
        [1, 'b', 'I'],
        [1, 'b', 'II'],
        [2, 'a', 'I'],
        [2, 'a', 'II'],
        [2, 'b', 'I'],
        [2, 'b', 'II'],
    ]
*/

Arr::divide() {#collection-method}

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

use Illuminate\Support\Arr;

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

// $keys: ['name']

// $values: ['Desk']

Arr::dot() {#collection-method}

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

use Illuminate\Support\Arr;

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

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

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

Arr::except() {#collection-method}

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

use Illuminate\Support\Arr;

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

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

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

Arr::first() {#collection-method}

Метод 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() {#collection-method}

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

use Illuminate\Support\Arr;

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

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

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

Arr::forget() {#collection-method}

Метод Arr::forget удаляет заданную пару ключ/значение из многомерного массива, используя синтаксис с точкой ("dot" notation):

use Illuminate\Support\Arr;

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

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

// ['products' => []]

Arr::get() {#collection-method}

Метод Arr::get возвращает значение из многомерного массива, используя синтаксис с точкой ("dot" notation):

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() {#collection-method}

Метод Arr::has проверяет существование заданного элемента или элементов в массиве, используя синтаксис с точкой ("dot" notation):

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::isAssoc() {#collection-method}

Метод Arr::isAssoc возвращает true, если данный массив является ассоциативным. Массив считается "ассоциативным", если в нем нет последовательных числовых ключей, начинающихся с нуля:

use Illuminate\Support\Arr;

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

// true

$isAssoc = Arr::isAssoc([1, 2, 3]);

// false

Arr::last() {#collection-method}

Метод 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() {#collection-method}

Метод 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() {#collection-method}

Метод 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() {#collection-method}

Метод 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() {#collection-method}

Метод 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() {#collection-method}

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

use Illuminate\Support\Arr;

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

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

// 4 - (полученно случайным образом)

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

use Illuminate\Support\Arr;

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

// [2, 5] - (полученно случайным образом)

Arr::query() {#collection-method}

Метод Arr::query преобразует массив в строку запроса:

use Illuminate\Support\Arr;

$array = ['name' => 'Taylor', 'order' => ['column' => 'created_at', 'direction' => 'desc']];

Arr::query($array);

// name=Taylor&order[column]=created_at&order[direction]=desc

Arr::set() {#collection-method}

Метод Arr::set устанавливает значение в многомерном массиве, используя синтаксис с точкой ("dot" notation):

use Illuminate\Support\Arr;

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

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

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

Arr::shuffle() {#collection-method}

Метод Arr::shuffle случайным образом перемешивает элементы в массиве:

use Illuminate\Support\Arr;

$array = Arr::shuffle([1, 2, 3, 4, 5]);

// [3, 2, 5, 1, 4] - (сформированный случайным образом)

Arr::sort() {#collection-method}

Метод 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() {#collection-method}

Метод 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() {#collection-method}

Метод 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() {#collection-method}

Метод 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 устанавливает недостающее значение внутри вложенного массива или объекта, используя синтаксис с точкой ("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]]]

Эта функция также принимает звездочки * в качестве подстановки (wildcards) и соответственно заполняет массив:

$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 получает значение из вложенного массива или объекта, используя синтаксис с точкой ("dot" notation):

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

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

// 100

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

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

// 0

Функция также принимает подстановки (wildcards), используя звездочки *, которые могут использоваться вместо любого ключа массива или объекта:

$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 устанавливает значение внутри многомерного массива или объекта, используя синтаксис с точкой ("dot" notation):

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

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

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

Функция также принимает подстановки (wildcards), используя звездочки *, и устанавливает значения соответственно:

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

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

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

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

head()

Функция 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 для получения полного пути к файлу в папке database:

$path = database_path();

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

mix()

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

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

public_path()

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

$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() {#collection-method}

Метод Str::after возвращает часть строки после заданного значения. Вся строка будет возвращена, если она не содержит заданного значения:

use Illuminate\Support\Str;

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

// ' my name'

Str::afterLast() {#collection-method}

Метод Str::afterLast возвращает часть строки после последнего вхождения заданного значения. Вся строка будет возвращена, если она не содержит заданного значения:

use Illuminate\Support\Str;

$slice = Str::afterLast('App\Http\Controllers\Controller', '\\');

// 'Controller'

Str::before() {#collection-method}

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

use Illuminate\Support\Str;

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

// 'This is '

Str::beforeLast() {#collection-method}

Метод Str::beforeLast возвращает часть строки до последнего вхождения заданного значения:

use Illuminate\Support\Str;

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

// 'This '

Str::camel() {#collection-method}

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

use Illuminate\Support\Str;

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

// fooBar

Str::contains() {#collection-method}

Метод 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() {#collection-method}

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

use Illuminate\Support\Str;

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

// true

Str::endsWith() {#collection-method}

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

use Illuminate\Support\Str;

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

// true

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

use Illuminate\Support\Str;

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

// true

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

// false

Str::finish() {#collection-method}

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

use Illuminate\Support\Str;

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

// this/string/

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

// this/string/

Str::is() {#collection-method}

Метод Str::is определяет, соответствует ли строка заданному шаблону. Звездочки * могут использоваться как символы подстановки:

use Illuminate\Support\Str;

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

// true

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

// false

Str::ucfirst() {#collection-method}

Метод Str::ucfirst возвращает строку с первым символом в верхнем регистре:

use Illuminate\Support\Str;

$string = Str::ucfirst('foo bar');

// Foo bar

Str::isUuid() {#collection-method}

Метод Str::isUuid определяет, является ли строка валидным UUID:

use Illuminate\Support\Str;

$isUuid = Str::isUuid('a0a2a2d2-0b87-4a18-83f2-2529882be2de');

// true

$isUuid = Str::isUuid('laravel');

// false

Str::kebab() {#collection-method}

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

use Illuminate\Support\Str;

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

// foo-bar

Str::limit() {#collection-method}

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

use Illuminate\Support\Str;

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

// The quick brown fox...

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

use Illuminate\Support\Str;

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

// The quick brown fox (...)

Str::orderedUuid() {#collection-method}

Метод Str::orderedUuid генерирует "timestamp first" UUID, который может быть эффективно сохранен в индексируемой колонке базы данных:

use Illuminate\Support\Str;

return (string) Str::orderedUuid();

Str::plural() {#collection-method}

Метод 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() {#collection-method}

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

use Illuminate\Support\Str;

$random = Str::random(40);

Str::replaceArray() {#collection-method}

Метод 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() {#collection-method}

Метод 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() {#collection-method}

Метод 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() {#collection-method}

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

use Illuminate\Support\Str;

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

// car

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

// child

Str::slug() {#collection-method}

Метод Str::slug генерирует "slug" подходящий для URL из строки:

use Illuminate\Support\Str;

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

// laravel-5-framework

Str::snake() {#collection-method}

Метод Str::snake преобразует строку в snake_case:

use Illuminate\Support\Str;

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

// foo_bar

Str::start() {#collection-method}

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

use Illuminate\Support\Str;

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

// /this/string

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

// /this/string

Str::startsWith() {#collection-method}

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

use Illuminate\Support\Str;

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

// true

Str::studly() {#collection-method}

Метод Str::studly преобразует строку в StudlyCase:

use Illuminate\Support\Str;

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

// FooBar

Str::title() {#collection-method}

Метод 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() {#collection-method}

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

use Illuminate\Support\Str;

return (string) Str::uuid();

Str::words() {#collection-method}

Метод 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 вернет переданный ей ключ. Таким образом, используя вышеприведенный пример, функция trans_choice вернет messages.notifications, если ключ перевода не существует.

URL

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 или 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-исключение, если заданное логическое выражение равно true:

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

Функция, обратная blankfilled.

broadcast()

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

broadcast(new UserRegistered($user));

cache()

Функцию 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 = cookie('name', 'value', $minutes);

csrf_field()

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

{{ csrf_field() }}

csrf_token()

Функция csrf_token позволяет получить текущее значение CSRF-последовательности:

$token = csrf_token();

dd()

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

dd($value);

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

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

decrypt()

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

$decrypted = decrypt($encrypted_value);

dispatch()

Функция dispatch помещает задачу в очередь задач Laravel:

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.

encrypt()

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

$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

Функция, обратная filledblank.

info()

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

info('Некая полезная информация!');

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

info('Неудачная попытка входа пользователя.', ['id' => $user->id]);

logger()

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

logger('Отладочное сообщение');

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

logger('Вход пользователя.', ['id' => $user->id]);

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

logger()->error('Вам сюда нельзя.');

method_field()

Функция method_field создаёт скрытое поле ввода HTML hidden, содержащее подмененное значение 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) !!}

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

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

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

Функция 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 () {
    // максимум 5 попыток на выполнение с паузой 100мс между попытками
}, 100);

session()

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

$value = session('key');

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

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

Если в функцию не было передано значение, то она вернет значения сессии:

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

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

tap()

Функция tap принимает два аргумента: некоторую переменную $value и функцию. Эта переменная передается в функцию-аргумент в виде аргумента. Эта же переменная возвращается как результат выполнения хелпера. Возвращаемое значение функции-аргумента игнорируется:

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

    $user->save();
});

Если функция-аргумент не передается в хелпер, вы можете вызвать любой метод данного $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 выполняет функцию для заданного значения, если значение не является blank и возвращает результат функции:

$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($data, $rules, $messages);

value()

Функция value возвращает переданное ей значение. Однако, если передать функцию, она будет выполнена и её результат будет возвращен:

$result = value(true);

// true

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

// false

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