sudo-ecommerce/image-domain-replace

Laravel middleware package to replace image domains and handle bucket checks.

Installs: 452

Dependents: 0

Suggesters: 0

Security: 0

Stars: 0

Watchers: 0

Forks: 0

Open Issues: 0

pkg:composer/sudo-ecommerce/image-domain-replace

v4.0.9 2025-12-30 03:22 UTC

README

Cài đặt

  1. Thêm vào composer.json của project:
"repositories": [
    {
        "type": "path",
        "url": "./packages/ImageDomainReplace"
    }
],
  1. Cài đặt package:
composer require sudo/image-domain-replace:dev-main
  1. Publish assets (JavaScript files):
php artisan vendor:publish --provider="Sudo\\ImageDomainReplace\\ImageDomainReplaceServiceProvider" --tag=public
  1. Publish config (tùy chọn):
php artisan vendor:publish --provider="Sudo\\ImageDomainReplace\\ImageDomainReplaceServiceProvider" --tag=config
  1. Cấu hình domain mới trong .env hoặc config/image-domain-replace.php:
IMAGE_DOMAIN_REPLACE_NEW=https://storage.sudospaces.com
IMAGE_DOMAIN_REPLACE_FALLBACK=/assets/img/default_image.png

Cấu hình

File JavaScript sẽ được publish tại: /vendor/image-domain-replace/js/script.js

Chức năng

Package tự động:

  • Tự động replace domain ảnh cũ về domain mới trong response HTML
  • Thêm fallback JavaScript cho ảnh lỗi với retry logic thông minh
  • Tự động kiểm tra/tạo ảnh resize khi cần thiết với API endpoint /image/check-and-upload
  • Xử lý cache busting và retry để tăng độ tin cậy
  • Hỗ trợ dynamic images (SPA applications) với MutationObserver
  • Tương thích mọi phiên bản Laravel/PHP >= 7.2

Sử dụng nâng cao

Có thể khởi tạo thủ công JavaScript với config tùy chỉnh:

const imageHandler = new ImageDomainReplace({
    fallbackImageUrl: '/custom/placeholder.jpg',
    checkImageUrl: '/image/check-and-upload',
    maxRetries: 5,
    retryDelay: 2000,
    debug: true
});

Tuỳ chỉnh

  • Sửa config/image-domain-replace.php để thay đổi domain mới hoặc tắt queue

Đóng góp

PR hoặc issue tại repo này.

Lưu ý: Tất cả repo sử dụng se mbf cần thêm
'use_path_style_endpoint' => env('AWS_USE_PATH_STYLE_ENDPOINT', false) ở filesystem.php và AWS_USE_PATH_STYLE_ENDPOINT=true ở .env

IMAGE_DOMAIN_REPLACE_ENABLED=true LICENSE_MIDDLEWARE_ENABLED=false STORAGE_MONITORING_ENABLED=true

là 3 biến để check lần lượt: IMAGE_DOMAIN_REPLACE_ENABLED -> Check replace domain, mặc định true, 1 số dự án ảnh đặt ở local thì để là false. LICENSE_MIDDLEWARE_ENABLED -> Check Khoá website STORAGE_MONITORING_ENABLED -> Check Khoá dung lượng website