str() and to_route() helpers trong Laravel 9 Chuyên mục PHP và Laravel 2024-01-05 38 Lượt xem 28 Lượt thích 0 Bình luận

Trước Laravel 9, khi bạn muốn tương tác với chuỗi, bạn sẽ sử dụng lớp Illuminate\Support\Str như sau:
use Illuminate\Support\Str;
$result = Str::endsWith('PHP is awesome', 'PHP');
// Outputs: true
Hoặc nếu bạn muốn thực hiện các thao tác chuỗi một cách linh hoạt, bạn có thể sử dụng Illuminate\Support\Str::of, trả về một phiên bản của lớp Illuminate\Support\Stringable như sau:
use Illuminate\Support\Str;
$input = 'this is test file.php';
$output = Str::of($input)
->replaceLast('php', 'html')
->camel();
// thisIsTestFile.html
Nhưng với việc phát hành Laravel 9, có thêm một cách nữa để làm điều tương tự.
str() helper
Laravel 9 hiện có một hàm trợ giúp mới toàn cầu là str() mà bạn có thể sử dụng để thực hiện các thao tác chuỗi một cách linh hoạt giống như bạn làm với Str::of.
Vì vậy, ví dụ trước đó có thể được viết lại sử dụng str() như sau.
$input = 'this is test file.php';
$output = str($input)
->replaceLast('php', 'html')
->camel();
// thisIsTestFile.html
Như bạn có thể thấy, một ưu điểm của phương thức trợ giúp này là bây giờ bạn không cần phải nhập toàn bộ lớp Illuminate\Support\Str. Vì vậy, đó là một gánh nặng ít đi. Nó chỉ hoạt động!
Và hơn nữa, nó trở nên tinh tế và gọn gàng hơn.
Ngoài ra, nếu bạn không cung cấp bất kỳ đối số nào cho hàm str(), hàm vẫn trả về một phiên bản của Illuminate\Support\Str mà bạn có thể sử dụng để thực hiện các thao tác linh hoạt hơn.
$output = str()->camel('test file.php');
// testFile.php
to_route() helper
Ngoài hàm trợ giúp str(), Laravel 9 cũng đi kèm với một hàm trợ giúp thuận tiện là to_route() mà bạn có thể sử dụng thay vì redirect()->route() cho các route có tên chẳng hạn.
Vì vậy, nếu chúng ta có một route có tên là home, đây là cách nó trông như trong cả hai trường hợp, trước và sau Laravel 9.
// Pre Laravel 9
Route::get('redirectHome', function() {
return redirect()->route('home');
});
// Post Laravel 9
Route::get('redirectHome', function() {
return to_route('home');
});
Như bạn có thể thấy, hàm trợ giúp to_route() hoạt động giống như redirect()->route() nhưng nó một chút biểu cảm và ngắn gọn hơn.


Bình luận (0)