golchha21 / resmushit
A Laravel package for the popular image optimization web service reSmush.it
Installs: 21 652
Dependents: 0
Suggesters: 0
Security: 0
Stars: 7
Watchers: 1
Forks: 4
pkg:composer/golchha21/resmushit
Requires
- php: ^7.1|^7.2.5|^7.3|^8.0|^8.1
- ext-curl: *
- ext-fileinfo: *
- ext-json: *
- laravel/framework: ^5.8|^6.0|^7.0|^8.0|^9.0|^10.0|^11.0|^12.0
Requires (Dev)
- orchestra/testbench: ^9.0
- phpunit/phpunit: ^10.0
README
A Laravel package for the popular image optimization web service reSmush.it
Installation
Install via composer
composer require golchha21/resmushit
Publish configuration file
php artisan vendor:publish --provider Golchha21\ReSmushIt\Providers\ServiceProvider --tag=config
Example configuration file
// config/ReSmushIt.php return [ // Keep a copy of the original image 'original' => true, // Image quality (0–100) 'quality' => 92, // Supported mime types 'mime' => [ 'image/png', 'image/jpeg', 'image/gif', 'image/bmp', 'image/tiff', ], // Custom User-Agent for API requests 'useragent' => 'ReSmushIt v1.3.4', // Preserve EXIF metadata 'exif' => false, // Maximum allowed file size in bytes (e.g. 5 MB) 'max_filesize' => 5242880, ];
Usage
Option 1: Direct class usage
$file = public_path('images/news1.jpg'); $files = [ public_path('images/news1.jpg'), public_path('images/news2.jpg'), public_path('images/news3.jpg'), public_path('images/news4.jpg'), ]; $resmushit = new ReSmushIt(); $result = $resmushit->path($file); $results = $resmushit->paths($files);
Option 2: Facade usage
$file = public_path('images/news1.jpg'); $files = [ public_path('images/news1.jpg'), public_path('images/news2.jpg'), public_path('images/news3.jpg'), public_path('images/news4.jpg'), ]; Optimize::path($file); Optimize::paths($files);
Error Handling
If the reSmush.it API is unreachable, times out, or returns an invalid response, the optimizer will return a structured error array instead of triggering a fatal error.
Example
$result = Optimize::path($file); if (isset($result['error'])) { // Handle the error (log it, retry, notify user, etc.) }
Return Value
Both path() and paths() always return arrays.
- On success, the response contains optimization details returned by the reSmush.it API.
- On failure, the response contains an
errorkey describing the issue, along with additional context when available.
This applies to both single and batch optimization.
Changelog
Please see CHANGELOG for more information on what has changed recently.
Security
For common issues and environment-specific fixes, see Troubleshoot. If you discover any security-related issues, please email vardhans@ulhas.net instead of using the issue tracker.
Author
- Ulhas Vardhan Golchha -- Initial work
See also the list of contributors who participated in this project.
License
reSmushit for Laravel is open-sourced software licensed under the MIT license.