Laravel - 5 Helpers Hữu Ích Cho Developer

Laravel 5 Helpers Hữu Ích Cho Developer

Laravel – 5 helpers hữu ích cho developer : Trong Laravel có khá nhiều helper rất có ích trong việc lập trình, chúng hổ trợ chúng ta xử lý nhanh chống và tránh mất thời gian. Helper nào cũng tốt nhưng với tôi và tôi rất thích một vài helper sao. Trong bài viết lần này mình sẽ chỉ ra những helper mà tôi thích nhất.

Laravel - 5 Helpers Hữu Ích Cho Developer
Laravel – 5 Helpers Hữu Ích Cho Developer



data_get() Laravel => 5.5

data_get() helper cho phép bạn trích xuất các phần tử trong mảng (array) hay đối tượng (object). Helper này tương tự như array_get() trong các phiên bản trước của Laravel. Hơn thế nữa data_get() còn cung cấp cho chúng ta thông số thứ 3 giúp cho việc mặt định giá trị đầu ra một cách an toàn hơn tránh các trường hợp xẩy ra lổi.

    $array = ['longpham' => ['info' => ['age' => 26]]];

    $count = data_get($array, 'longpham.info.age'); // 26
    $avgCost = data_get($array, 'longpham.info.sex', 0); // 0

    $object->longpham->info->age = 26;

    $count = data_get($object, 'longpham.info.age'); // 26
    $avgCost = data_get($object, 'longpham.info.sex', 0); // 0

Nếu bạn không biết một khóa cụ thể trong mảng (array) hay đối tượng (object). Chúng ta chỉ cần điền vào dấu sao (*) trong dấu chấm thì hàm helper này sẽ cho ra một loạt các kết quả.

    $array = ['longpham' => ['info' => ['age' => 26]]];
    $counts = data_get($array, 'longpham.*.age'); // [26]

str_plural()

str_plural() một hàm cũng khá hữu ích trong việc xác định một chuổi cũng như chuyển đổi một chuổi số nhiều thành số ít và ngược lại. Rất tiếc hiện tại str_plural() chỉ hổ trợ tiếng Anh. Đặc biệt hơn str_plural() còn có ích trong trường hợp những từ không thể điếm được hoặc những trường hợp đặc biệt khác.



    str_plural('dog'); // dogs
    str_plural('cat'); // cats

    str_plural('dog', 2); // dogs
    str_plural('cat', 1); // cat

    str_plural('child'); // children
    str_plural('person'); // people
    str_plural('fish'); // fish
    str_plural('deer', 2); // deer

route()

route() một helper khá quen thuộc mà chắc hẳn không có bạn nào không sử dụng nếu bạn đang làm việc với Laravel. route() cho phép chúng ta tạo ra một URL được chỉ định mà đã được khai báo trước đó. route() sẽ có 2 tham số đầu vào 1 là tên của URL hoặc là đường dẩn cụ thể đã được khai báo. 2 sẽ là tham số tùy chọn. Nếu như tên của URL hoặc đường dẫn không khai báo các tham số tùy chọn mà khi chúng ta sử dụng lại khai báo thêm tham số tùy chọn thì lúc này route() sẽ cố gắng tốt nhất để khớp chúng với các thuộc tính trên route sau đó sẽ thêm bất kỳ tham số còn lại vào cuối URL.

    Route::get('burgers', 'BurgersController@index')->name('burgers');
    route('burgers'); // https://codevivu.com/burgers
    route('burgers', ['order_by' => 'price']); // https://codevivu.com/burgers?order_by=price

    Route::get('burgers/{id}', 'BurgersController@show')->name('burgers.show');
    route('burgers.show', 1); // https://codevivu.com/burgers/1
    route('burgers.show', ['id' => 1]); // https://codevivu.com/burgers/1

    Route::get('employees/{id}/{name}', 'EmployeesController@show')->name('employees.show');
    route('employees.show', [5, 'chris']); // https://codevivu.com/employees/5/chris
    route('employees.show', ['id' => 5, 'name' => 'chris']); // https://codevivu.com/employees/5/chris
    route('employees.show', ['id' => 5, 'name' => 'chris', 'hide' => 'email']); // https://codevivu.com/employees/5/chris?hide=email

Trường hợp chúng ta cần một URL tương đối thay vì tuyệt đối thì route() cũng cho phép chúng ta truyền vào tham số thứ 3 (không bắt buộc) boolean true hoặc false. Nếu là true trả về cho chúng ta là URL tuyệt đối và false sẽ là tương đối.

    route('burgers.show', 1, false); // /burgers/1

abort_if() Laravel => 5.5

abort_if() là một hàm khá hay vừa được cập nhật trong phiên bản Laravel 5.5. Đây là hàm trả về thông báo lổi với một điều kiện cụ thể. Ngoài ra abort_if tham số thứ ba tùy chọn sẽ chấp nhận văn bản phản hồi tuỳ chỉnh và đối số thứ tư tùy chọn sẽ chấp nhận một mảng các thông tin trả về.

    abort_if(! Auth::user()->isAdmin(), 403);
    abort_if(! Auth::user()->isAdmin(), 403, 'Sorry, you are not an admin');
    abort_if(Auth::user()->isCustomer(), 403);

Vì vậy, nhiều người trong chúng ta đã làm một cái gì đó tương tự như ví dụ dưới đây, và abort_if () giảm bớt lượng code tối ưu hóa.

    // In "admin" specific controller
    public function index()
    {
        if (! Auth::user()->isAdmin()) {
            abort(403, 'Sorry, you are not an admin');
        }
    }

    // better!
    public function index()
    {
        abort_if(! Auth::user()->isAdmin(), 403);
    }

optional() Laravel => 5.5

optional() giúp bạn truy cập thuộc tính hoặc gọi phương thức trên một đối tượng. Nếu đối tượng đã cho là null, các thuộc tính và phương thức sẽ trả về null thay vì gây ra lỗi.



    // User 1 exists, with account
    $user1 = User::find(1);
    $accountId = $user1->account->id; // 123

    // User 2 exists, without account
    $user2 = User::find(2);
    $accountId = $user2->account->id; // PHP Error: Trying to get property of non-object

    // Fix without optional()
    $accountId = $user2->account ? $user2->account->id : null; // null
    $accountId = $user2->account->id ?? null; // null

    // Fix with optional()
    $accountId = optional($user2->account)->id; // null

optional() rất hữu ích khi sử dụng các đối tượng mà bạn có thể không sở hữu hoặc gọi dữ liệu lồng nhau trong các Eloquent relationships, hoặc có thể không có sẵn.

5 ví dụ này chỉ là một lựa chọn nhỏ mà Laravel cung cấp. Tôi khuyến khích bạn làm quen với tất cả những helper hiện có và bắt đầu triển khai chúng vào trong chính project của bạn. Chúc các bạn thành công. Nếu thấy hay và có ích hãy share cho bạn bè nhé.

Article Writter By

Long Phạm

"Thành công nuôi dưỡng sự hoàn hảo. Sự hoàn hảo lại nuôi lớn thất bại. Chỉ có trí tưởng tượng mới tồn tại."