Laravel medialibrary hits v4 original

by Freek Van der Herten – 2 minute read

Today we tagged a new major version of laravel-medialibrary. In case you're not familiar with this package here's a quick rundown of what it can do.

The package can associate all sorts of files with Eloquent models. It provides a simple, fluent API to work with. Here's a quick example:

$newsItem = News::find(1);
$newsItem->addMedia($pathToFile)->toCollection('images');

Want to store some large files on another filesystem? No problem:

$newsItem->addMedia($smallFile)->toCollectionOnDisk('downloads', 'local');
$newsItem->addMedia($bigFile)->toCollectionOnDisk('downloads', 's3');

The package can also generate derived images such as thumbnails for images and pdf's. For this to work you have to prepare your model a bit:

use Illuminate\Database\Eloquent\Model;
use Spatie\MediaLibrary\HasMedia\Interfaces\HasMediaConversions;
use Spatie\MediaLibrary\HasMedia\HasMediaTrait;

class NewsItem extends Model implements HasMediaConversions
{
    use HasMediaTrait;

    public function registerMediaConversions()
    {
        $this->addMediaConversion('thumb')
             ->setManipulations(['w' => 368, 'h' => 232])
             ->performOnCollections('images');
    }
}

Once that's out the way you can to this to retrieve a thumbnail.

$newsItem->getMedia('images')->first()->getUrl('thumb');

If you're already using v3 of the package you'll notice that there hasn't changed much. Upgrading should be fairly painless. V4 is not a feature rich major version. The biggest changes are that Glide 1.0.0 is used behind the scenes to create thumbnails, and some internal functions were refactored.

Thanks to a lot of quality contributions from our users this is easily one of our best packages. If you like this one, take a look at the other ones we've previously made.

Join 9,500+ smart developers

Get my monthly newsletter with what I learn from running Spatie, building Oh Dear, and maintaining 300+ open source packages. Practical takes on Laravel, PHP, and AI that you can actually use.

No spam. Unsubscribe anytime. You can also follow me on X.

Found something interesting to share? Submit a link to the community section.