sudo-ecommerce / image-domain-replace
Laravel middleware package to replace image domains and handle bucket checks.
Package info
github.com/Sudo-E-Commerce/Image-Domain-Replace
pkg:composer/sudo-ecommerce/image-domain-replace
Requires
- php: >=7.1 || ^8.0
- guzzlehttp/guzzle: ^6.0 || ^7.0
This package is not auto-updated.
Last update: 2026-06-11 11:54:18 UTC
README
Cài đặt
- Thêm vào composer.json của project:
"repositories": [ { "type": "path", "url": "./packages/ImageDomainReplace" } ],
- Cài đặt package:
composer require sudo/image-domain-replace:dev-main
- Publish assets (JavaScript files):
php artisan vendor:publish --provider="Sudo\\ImageDomainReplace\\ImageDomainReplaceServiceProvider" --tag=public
- Publish config (tùy chọn):
php artisan vendor:publish --provider="Sudo\\ImageDomainReplace\\ImageDomainReplaceServiceProvider" --tag=config
- Cấu hình domain mới trong
.envhoặcconfig/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