everywell / imagination
A Laravel package that allows to handle images on your models seamlessly
Installs: 1 203
Dependents: 0
Suggesters: 0
Security: 0
Stars: 2
Watchers: 2
Forks: 4
Open Issues: 1
Requires
- php: ^5.5.9 || ^7.0
- illuminate/support: ^6.0 || ^7.0 || ^8.0
- intervention/image: ^2.3
This package is auto-updated.
Last update: 2024-10-26 03:25:27 UTC
README
A Laravel package that allows to handle images on your Eloquent models seamlessly.
Installation
To install this package just a few steps are needed
Composer
Pull this package in through Composer using the following command inside your terminal:
composer require everywell/imagination
Service Provider
Add the package to your application service providers in config/app.php
file.
'providers' => [ /* * Laravel Framework Service Providers... */ Illuminate\Foundation\Providers\ArtisanServiceProvider::class, Illuminate\Auth\AuthServiceProvider::class, ... /** * Third Party Service Providers... */ EveryWell\Imagination\ImaginationServiceProvider::class, ],
Config File
Publish the package config file to your aplication running the following command inside your terminal:
php artisan vendor:publish --provider="EveryWell\Imagination\ImaginationServiceProvider"
Trait and Contract
Include HasImages
trait and also implement HasImages
contract inside your model class.
use EveryWell\Imagination\Traits\HasImages; use EveryWell\Imagination\Contracts\HasImages as HasImagesContract; class News extends Model implements HasImagesContract { use HasImages;
Images attribute
Add an images
array attribute to your model containing the fields that should be handled as images.
use EveryWell\Imagination\Traits\HasImages; use EveryWell\Imagination\Contracts\HasImages as HasImagesContract; class News extends Model implements HasImagesContract { use HasImages; protected $fillable = [ 'title', 'text', 'banner', 'image' ]; protected $images = [ 'banner', 'image' => [ 'discard_original' => true, // Optional: if true, doesn't save the original version of the image 'dimensions' => [ // Optional: specifies different dimensions than the default config [ 'name' => 'thumb', 'width' => 150 ], [ 'name' => 'small', 'width' => 250 ], [ 'name' => 'regular', 'width' => 600 ] ] ] ];
And that's it!