NTM Solutions

Chủ Nhật, 9 tháng 8, 2026

Viết hàm riêng trong Laravel và chạy autoload để dùng

Laravel không có một thư mục helpers mặc định. Nếu bạn muốn tự viết sanitizeHtml() thì nên tự tạo một helper riêng.

Với project của bạn, mình khuyên:

app/
└── Helpers/
    └── helpers.php

1. Tạo file

app/Helpers/helpers.php

Ví dụ:

<?php

if (! function_exists('sanitizeHtml')) {

    function sanitizeHtml(string $html): string
    {
        // code sanitize của bạn

        return $html;
    }
}


2. Cho Composer tự load

Mở:

composer.json

Tìm:

"autoload": {
    "psr-4": {
        "App\\": "app/",
        ...
    }
}

thêm files:

"autoload": {
    "files": [
        "app/Helpers/helpers.php"
    ],
    "psr-4": {
        "App\\": "app/"
    }
}

Nếu autoload của bạn đã có files thì chỉ thêm đường dẫn vào mảng đó.

3. Chạy Composer

composer dump-autoload

Sau đó có thể gọi ở bất kỳ Controller, Model, Service...:

$content = sanitizeHtml($request->content);

hoặc trực tiếp:

'content' => sanitizeHtml($request->content),

Cấu trúc mình khuyên dùng

app/
├── Helpers/
│   └── helpers.php
│
├── Http/
│   └── Controllers/
│
├── Models/
│
└── ...

Đây là cách khá gọn cho những function global, dùng nhiều nơi, như:

sanitizeHtml()
formatMoney()
slugify()
formatDate()

Còn nếu function chỉ phục vụ riêng cho Post, thì tốt hơn đưa nó vào Service/Action riêng thay vì biến mọi thứ thành global helper.

Không có nhận xét nào:

Đăng nhận xét

Facebook Youtube RSS