PHPackages                             profscode/media-management - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Image &amp; Media](/categories/media)
4. /
5. profscode/media-management

ActiveLibrary[Image &amp; Media](/categories/media)

profscode/media-management
==========================

Profscode Media Management is a streamlined media handling package designed to intelligently process, store, and retrieve uploaded images. It can automatically resize images during upload, generate multiple variations, optimize file names, and associate media with models for easy access. Inspired by Spatie’s Media Library, it offers a similar developer experience with a simpler, more extensible structure tailored to project-specific needs.

v1.0.3(7mo ago)014MITPHPPHP ^8.1 || ^8.2 || ^8.3 || ^8.4

Since Nov 22Pushed 7mo agoCompare

[ Source](https://github.com/YamanHafez/profscode-media-management)[ Packagist](https://packagist.org/packages/profscode/media-management)[ RSS](/packages/profscode-media-management/feed)WikiDiscussions main Synced today

READMEChangelogDependencies (1)Versions (7)Used By (0)

What Is Profscode Media Management?
-----------------------------------

[](#what-is-profscode-media-management)

This package provides media/file management for your Laravel models. It stores files in a model-based directory structure, generates conversions (thumbnails/webp), and provides convenient URL access.

---

Installation
------------

[](#installation)

```
composer require profscode/media-management

```

### 1. Use Trait in Your Model

[](#1-use-trait-in-your-model)

```
use Profscode\MediaManagement\MediaManagement;

class User extends Model
{
    use MediaManagement;
}
```

---

ProfscodeMedia Model Structure
------------------------------

[](#profscodemedia-model-structure)

This model keeps metadata about uploaded media files.

### Fields

[](#fields)

FieldDescriptionmodel\_idRelated model IDmodel\_typeModel class namecollectionCollection name (avatar, gallery, etc.)original\_nameOriginal uploaded filenamenameStored filenamemime\_typeMIME typediskLaravel storage disksizeFile sizeconversionsJSON containing thumbnails and webp paths---

addMediaFromRequest Usage
-------------------------

[](#addmediafromrequest-usage)

```
$user = User::find(1);
$user->addMediaFromRequest("profile_picture", "avatars");
```

Requires:

```

```

### Optional conversion structure:

[](#optional-conversion-structure)

```
[
    "admin_panel" => [
        "width" => 100,
        "height" => 100,
        "webp" => true
    ]
]
```

---

addMediaFromUrl Usage
---------------------

[](#addmediafromurl-usage)

```
$user->addMediaFromUrl("https://domain.com/image.jpg", "gallery");
```

or

```
$conversions = [
    "admin_panel" => [
        "width" => 100,
        "height" => 100,
        "webp" => true
    ]
]
$user->addMediaFromUrl("https://domain.com/image.jpg", "gallery", $conversions);
```

---

Retrieving Media (Relation)
---------------------------

[](#retrieving-media-relation)

```
$user->getMedia();
```

retrive Media as Collection

---

getUrl Usage
------------

[](#geturl-usage)

### Original URL:

[](#original-url)

```
$media->getFirstMediaUrl($collection = "default");
```

### Thumbnail or WebP:

[](#thumbnail-or-webp)

```
$media->getFirstMediaUrl($collection , 'admin_panel');
```

---

getFirstMediaUrl Usage
----------------------

[](#getfirstmediaurl-usage)

```
$user->getFirstMediaUrl("avatars", "admin_panel");
```

---

Storage Structure
-----------------

[](#storage-structure)

```
storage/app/public/media/{ModelType}/{ModelId}/{collection}/{filename.ext}

```

---

License
-------

[](#license)

MIT © Profscode

---

Support
-------

[](#support)

For issues, please open a GitHub Issue.

###  Health Score

36

—

LowBetter than 79% of packages

Maintenance65

Regular maintenance activity

Popularity6

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity57

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~2 days

Total

6

Last Release

214d ago

Major Versions

v0.2 → v1.0.02025-11-24

### Community

Maintainers

![](https://www.gravatar.com/avatar/2a222ca8933c72c3fc3715d66edac5ea7450656a7051af0b0a408b968ab6ac12?d=identicon)[YamanHafez](/maintainers/YamanHafez)

---

Top Contributors

[![YamanHafez](https://avatars.githubusercontent.com/u/88431093?v=4)](https://github.com/YamanHafez "YamanHafez (6 commits)")

### Embed Badge

![Health badge](/badges/profscode-media-management/health.svg)

```
[![Health](https://phpackages.com/badges/profscode-media-management/health.svg)](https://phpackages.com/packages/profscode-media-management)
```

###  Alternatives

[unopim/unopim

UnoPim Laravel PIM

10.5k2.4k](/packages/unopim-unopim)[statamic-rad-pack/runway

Eloquently manage your database models in Statamic.

135224.7k7](/packages/statamic-rad-pack-runway)[api-platform/laravel

API Platform support for Laravel

58171.4k14](/packages/api-platform-laravel)[ecotone/laravel

Ecotone for Laravel — CQRS, Event Sourcing, Sagas, Durable Workflows, and Outbox on top of Laravel Queue, via PHP attributes.

21318.6k3](/packages/ecotone-laravel)[duncanmcclean/statamic-cargo

Comprehensive e-commerce addon for Statamic. Build bespoke e-commerce sites without the complexity.

3416.7k](/packages/duncanmcclean-statamic-cargo)[justbetter/statamic-image-optimize

Image optimization after upload

1319.4k](/packages/justbetter-statamic-image-optimize)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
