十个必知的 Laravel 5.8 辅助函数

图片

Laravel 有很多辅助函数,它们提供了一种处理路径、数组和字符串的捷径。而完全了解它们却是几乎不可能的事情。大多数开发者都只知道一些最常见的,但是如果你再深入一点,会发现有一些非常有用的辅助函数。在本文中,我将为你提供十个你应该了解的辅助函数。

1. Logger

logger 辅助函数可以在系统日志等级为 debug 的时候记录一些日志信息。

logger('Product was changed.', ['id' => $product->id]);

上述代码会在日志文件中写入一行信息:

[2019-06-14 09:53:22] local.DEBUG: Product was changed. {"id":4}

如果没有传入参数,那么 logger 函数将会返回 Logger 实例,这样你可以自己控制记录日志的等级。

logger()->error('An error occurred');

上述代码会在日志文件中写入这样的一行信息:

[2019-06-14 09:56:12] local.ERROR: An error occurred

2. 划分一个数组

 Arr::divide() 方法允许你将一个数组分成俩数组。函数的返回值为两个数组,一个包含原始数组的键,另一个包含原始数组的值。

use Illuminate\Support\Arr;

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

$keys: ['name', 'age']
$values: ['James', 33]

3. Blank

 blank 辅助函数会检查给定值是否为空值。空值代表 null 值 、只包含空格的字符串、空数组、或者空字符串。

提示:Booleans 布尔值,视为空值

blank('');
blank('   ');
blank(null);
blank(collect())
// 以上均返回 true

blank(0);
blank(true);
blank(false);
// 以上将返回 false

与这个辅助函数相反的是 filled辅助函数

4. Dump 变量

如果要调试一个或多个变量,使用 dump 变量非常方便。

dump($variable);

还可以通过向 dump 函数传递额外的变量来调试多个变量。

dump($var1, $var2, $var3);

除了 dump 函数之外,还有另一个函数。这个辅助函数就是 dd , 意思是 dump and die 。这个函数的用法和 dump 一样。 dd 函数不仅执行了 dump ,还会终止执行语句( die() 的效果 )。

5. 路径

Laravel 有多个关于路径的辅助函数,你可以使用这些函数来获取特定目录的完全路径。

以下是 Laravel 关于路径的辅助函数:

  • app_path
  • base_path
  • config_path
  • database_path
  • public_path
  • resource_path
  • storage_path
echo storage_path(); // 输出:"C:\Path\To\My\Project\storage"

当然你还可以将参数传递给路径辅助函数,该函数将附加到返回的路径中:

echo storage_path('attachment.pdf');  // 输出: "C:\Path\To\My\Project\storage\attachment.pdf"

6. Slug

要将给定的字符串生成 URL 友好的字符串,可以使用 Str::slug 函数。

$slug = Str::slug('Laravel Is Awesome');
// $slug: "laravel-is-awesome"

默认的分隔符是 连字符(-),当然你也可以通过向函数传递第二个参数来覆盖它。

$slug = Str::slug('Laravel Is Awesome', '&');
// $slug: "laravel&is&awesome"

7. 数组是否具有值

Arr:has 方法可用于使用 “.” 符号来检查数组中是否存在某个项或多个项。

要检查多个项,只需将数组传递给方法而不是传递字符串。

use Illuminate\Support\Arr;
$blogs = ['blog' => ['title' => 'My blog', 'published' => true]];
$contains = Arr::has($blogs, 'blog.title'); // true
$contains = Arr::has($blogs, ['blog.title', 'blog.published']); // true
$contains = Arr::has($blogs, ['blog.title', 'blog.author']); // false

8. UUID

调用 Str::uuid 方法会生成一个 UUID:

use Illuminate\Support\Str;
echo (string) Str::uuid(); // "2ad4abcc-8adc-47b6-b21e-9e5497a8af1b"

9. Optional

optional 辅助函数允许你访问作为参数传递的对象的属性或调用方法。此函数接受任何参数。

如果传递给函数的对象是 null , 则属性和方法将返回 null ,而不会抛出错误。

print optional($blog->author)->full_name;

如果在上面的示例中设置了 $blog->author ,那么将打印 $blog->authorfull_name 。如果由于某种原因不存在 $blog->author ,就不会抛出错误,也不会打印任何内容。

10. Pluck

Arr::pluck 方法会从数组中检索给定键的所有值。

$parents = [
    ['parent' => ['id' => 1, 'name' => 'James']],
    ['parent' => ['id' => 8, 'name' => 'Lisa']],
];
Arr::pluck($parents, 'parent.name'); // ['James', 'Lisa']

以上就是我想和你分享的 10 个 Laravel 辅助函数,也请你分享对这篇文章的看法。一定要好好查看我的其他文章哦,我的很多文章都是关于 Laravel 的。如果你对我的文章有任何反馈、疑问,或者你希望我撰写另一个有关 Laravel 的主题,都可以随时发表评论。

原文地址:https://medium.com/swlh/10-laravel-helpers-that-you-should-know-9edbb78c2b0a


Practice makes perfect.

讨论数量: 1

blank() 这个不错

4个月前 评论