10 Laravel Helpers mà bạn nên biết

Laravel có rất nhiều function helpers hỗ trợ khi làm việc với paths, arrays và strings. Hầu như chúng ta không thể biết hết tất cả các function helpers. Nhưng có một số functions rất hữu ích mà ta nên tìm hiểu kỹ một chút. Trong bài viết này, mình xin giới thiệu 10 function helpers mà bạn nên biết.

1. Logger

Function logger có thể ghi message với một debug vào log.

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

Kết quả trong file log sẽ hiển thị dòng sau:

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

Nếu bạn không thêm bất kỳ giá trị nào vào function logger, nó sẽ return về một Logger instance. Điều này cho phép bạn ghi các messages khác nhau vào log. Ví dụ như sau:

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

Kết quả trong file log sẽ có thêm dòng sau:

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

2. Dividing an array

Phương thức Arr :: split () cho phép bạn chia một mảng thành hai mảng. Phương thức divide trả về hai mảng. Một mảng chứa các keys và mảng kia chứa các values.

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

Kết quả

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

3. Blank

Function blank giúp check một giá trị có phải blank hay không! Giá trị blank ở đây có nghĩa là null, một string chỉ chứa toàn ký tự whitespaces hoặc empty array, empty string.

Lưu ý: Booleans không phải là giá trị blank

Ví dụ

blank('');
blank('   ');
blank(null);
blank(collect());
// Kết quả trả về: true

blank(0);
blank(true);
blank(false);
// Kết quả trả về: false

Ngược với function blank là function filled .

4. Dumping variables

Hàm dump rất tiện dụng trong việc debug một hoặc nhiều biến.

dump($variable);

Trường hợp muốn dump nhiều biến thì ta chỉ cần truyền các biến vào trong hàm dump :

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

Bên cạnh function dump này, còn có function dd, có nghĩa dump và die, hoạt động tương tự như dump . Thay vì chỉ dump biến, hàm dd sẽ kết thúc việc thực thi tập lệnh.

5. Paths

Laravel có nhiều function helper hỗ trợ bạn lấy các đường dẫn đến các thư mục nhất định. Dưới đây là một số function Laravel cung cấp:

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

Bạn cũng có thể truyền một đối số cho các function helper path, ví dụ truyền vào tên file để lấy đường dẫn đến file đó:

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

6. Slug

Nếu bạn muốn custom lại URL từ một chuỗi nhất định, thì bạn có thể dùng Str::slug:

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

Mặc định dấu cách các từ trong slug là dấu '-', nhưng nếu bạn muốn viết lại thì chỉ việc truyền thêm ký tự vào function slug:

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

7. Array has value

Phương thức Arr:has có thể check xem một hoặc nhiều items có tồn tại trong array hay không bằng cách sử dụng ký tự '.' .

Để check nhiều items, chỉ cần truyền vào function một array thay vì một string:

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

Phương thức Str::uuid tạo ra một UUID:

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

9. Optional

Hàm optional cho phép bạn truy cập các thuộc tính hoặc gọi các phương thức trên một đối tượng mà bạn chuyển qua làm đối số. Bất kỳ đối số nào cũng được chấp nhận bởi function này.

Nếu đối tượng được truyền vào là null, các thuộc tính và phương thức sẽ trả về null thay vì gây ra error.

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

Nếu author tồn tại thì full name của author sẽ được in ra. Trường hợp, không tồn tại author thì sẽ không gây ra error mà trả về null.

10. Pluck

Phương thức Arr::pluck lấy tất cả các value của một key đã cho từ array:

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

Trên đây là 10 function helper Laravel hữu ích mà mình chia sẻ cho các bạn. Hy vọng các bạn có thể áp dụng trong project của mình. Bài viết được mình tham khảo tại [đây] (https://medium.com/swlh/10-laravel-helpers-that-you-should-know-9edbb78c2b0a) của tác giả Daan.