Помощники
Содержание:
Введение
Ларавел включает набор глобальных "функций-помощников" PHP. Многие из этих функций используются самим фреймворком. И конечно же вы можете свободно их использовать, если найдёте их полезными в вашем приложении.
Доступные методы
Массивы & Объекты
Arr::add Arr::collapse Arr::divide Arr::dot Arr::except Arr::first Arr::flatten Arr::forget Arr::get Arr::has Arr::last Arr::only Arr::pluck Arr::prepend Arr::pull Arr::random Arr::set Arr::sort Arr::sortRecursive Arr::where Arr::wrap data_fill data_get data_set head last
Пути
Строки
__ class_basename e preg_replace_array Str::after Str::before Str::camel Str::contains Str::containsAll Str::endsWith Str::finish Str::is Str::kebab Str::limit Str::orderedUuid Str::plural Str::random Str::replaceArray Str::replaceFirst Str::replaceLast Str::singular Str::slug Str::snake Str::start Str::startsWith Str::studly Str::title Str::uuid Str::words trans trans_choice
URL-адреса
Прочие помощники
abort abort_if abort_unless app auth back bcrypt blank broadcast cache class_uses_recursive collect config cookie csrf_field csrf_token dd decrypt dispatch dispatch_now dump encrypt env event factory filled info logger method_field now old optional policy redirect report request rescue resolve response retry session tap throw_if throw_unless today trait_uses_recursive transform validator value view with
Список методов
Массивы & Объекты
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>');
// <html>foo</html>
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
вместо.
Можно также использовать команду Artisandump-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