Cách tạo helper trong laravel
Bộ khung của 1 Helper trong Laravel Trước khi chúng ta bắt đầu và thật sự tạo các tập tin, hãy cùng xem xét các tập tin mà chúng ta sẽ tạo ra trong bài viết. app/Helpers/Envato/User.php: Đây là tập tin hỗ trợ của chúng ta chứa logic của helper. app/Providers/EnvatoServiceProvider.php: Đây là ...
Bộ khung của 1 Helper trong Laravel Trước khi chúng ta bắt đầu và thật sự tạo các tập tin, hãy cùng xem xét các tập tin mà chúng ta sẽ tạo ra trong bài viết.
- app/Helpers/Envato/User.php: Đây là tập tin hỗ trợ của chúng ta chứa logic của helper.
- app/Providers/EnvatoServiceProvider.php: Đây là tập tin service provider (cung cấp dịch vụ) tuỳ biến giúp nạp tập tin helper tùy biến của chúng ta
- config/app.php: Trong tập tin này, chúng ta sẽ khai báo service provider tuỳ biến của chúng ta và đồng thời giúp chúng ta xác định bí danh cho helper để chúng ta không phải sử dụng tên lớp đầy đủ của helper của chúng ta.
- routes/web.php: Một tập tin route Laravel khá chuẩn, nơi chúng ta sẽ thật sự kiểm thử helper của chúng ta. Tạo Các Tập tin Helper Mặc dù bạn có thể đặt các tập tin helper của bạn ở bất kỳ nơi nào trong ứng dụng của bạn, nhưng cách trực quan và tiêu chuẩn hơn đó là nó nên nằm trong thư mục app của bạn. Vì vậy hãy tiếp tục và tạo một thư mục Helpers/Envato trong app và tạo một tập tin User.php với các nội dung sau. Tất nhiên, bạn có thể đặt nó trực tiếp trong thư mục app hoặc app/Helpers, nhưng thêm cấp độ bổ sung cho phép chúng ta tổ chức các helper của chúng ta tốt hơn, đặc biệt là khi bạn có rất nhiều helper.
<?php //app/Helpers/Envato/User.php namespace AppHelpersEnvato; use IlluminateSupportFacadesDB; class User { /** * @param int $user_id User-id * * @return string */ public static function get_username($user_id) { $user = DB::table('users')->where('userid', $user_id)->first(); return (isset($user->username) ? $user->username : '); } }
Tập tin bắt đầu bằng một khai báo không gian tên khá tiêu chuẩn:
namespace AppHelpersEnvato; Mục đích của helper tuỳ biến của chúng ta là lấy về một username dựa trên một userid. Do đó, chúng ta cần phải tương tác với cơ sở dữ liệu, và điều đó buộc chúng ta phải bao gồm DB Facade. use IlluminateSupportFacadesDB; Đối với những người không nắm vững về Facade trong Laravel, nó chỉ là một cách thuận tiện để truy xuất các đối tượng trong các service container. Ngoài ra, bạn có thể đã sử dụng dependency injection. Tiếp tục, đến với cài đặt cụ thể cho helper của chúng ta. Như bạn thấy, có một phương thức tĩnh định nghĩa logic trong việc truy xuất một username dựa trên một userid. user=DB::table(′users′)−>where(′userid′,user = DB::table('users')->where('userid', user=DB::table(′users′)−>where(′userid′,user_id)->first(); Đối tượng user nắm giữ bản ghi cơ sở dữ liệu với userid trùng khớp. Cuối cùng, phương thức trả về username dưới dạng một phản hồi trong câu lệnh sau. **return (isset(user->username) ? $$ser->username : ');** Như vậy, tập tin helper của chúng ta gần như xong. Bây giờ chúng ta đã tạo ra tập tin helper của chúng ta, nhưng câu hỏi đặt ra là bạn sẽ sử dụng nó như thế nào? Bạn có thể bao gồm tên tập tin helper của chúng ta trong composer.json, để nó được nạp tự động. Sau đó, bạn có thể gọi ngay phương thức tĩnh của lớp helper của chúng ta Chúng ta đã gần xong! Chúng ta đã làm tất cả những công việc khó khăn để đến được đây, và bây giờ chúng ta có thể gặt hái những thành quả của helper tùy biến của chúng ta. Sử dụng Helper Đầu tiên của Bạn Một lần nữa, để giữ cho mọi thứ đơn giản và dễ hiểu, chúng ta sẽ định nghĩa một route cơ bản trong Laravel và gọi helper của chúng ta từ đó!
Tiếp tục và tạo một tập tin routes/web.php với các nội dung sau:
<?php // routes/web.php /* |-------------------------------------------------------------------------- | Web Routes |-------------------------------------------------------------------------- | | Here is where you can register web routes for your application. These | routes are loaded by the RouteServiceProvider within a group which | contains the "web" middleware group. Now create something great! | */ Route::get('/envato-user-helper-demo', function () { return EnvatoUser::get_username(1); });
Điều đó có cần lời giải thích nào không? Chúng ta đã gọi helper tùy biến bằng cách viết tắt EnvatoUser::get_username, và nó sẽ trả về username.
Tất nhiên, bạn có thể gọi helper của chúng ta từ bất cứ nơi nào trong ứng dụng, có thể là một controller hoặc view.
Như vậy là đã kết thúc câu chuyện của chúng ta ngày hôm nay. Tóm Tắt Các helper trong Laravel thật sự là một tính năng mạnh mẽ và tôi chắc chắn rằng với vai trò là một nhà phát triển, bạn sẽ muốn mở rộng nó. Và đó là chủ đề của ngày hôm nay—chúng ta đã đi qua những điều cơ bản của cấu trúc tập tin helper trong Laravel và tạo ra một helper hữu ích. Nguồn : https://code.tutsplus.com/tutorials/how-to-create-a-laravel-helper--cms-28537