Search by

gingerminds / symfony-media-manager

gingerminds

Media library, file library and image processing for Gingerminds Symfony projects

Package info

github.com/gingerminds/symfony-media-manager

Type:symfony-bundle

pkg:composer/gingerminds/symfony-media-manager

Statistics

Installs: 23

Dependents: 1

Suggesters: 0

Stars: 0

Open Issues: 0

1.1.0 2026-10-21 07:41 UTC

This package is auto-updated.

Last update: 2026-10-21 07:42:23 UTC


README

Media library, file library and image processing bundle for Gingerminds Symfony admin panels, built on gingerminds/symfony-core — the Symfony 8 counterpart of gingerminds/laravel-media-manager:

  • a file library: the single place files are uploaded to, browsed, organised in folders and picked from, without duplicates, with the usages of every file (a used file cannot be deleted);
  • medias (a file, a thumbnail, a category) and a media category tree, administered in the core admin;
  • form types to pick files (FilePickerType) and medias (MediaSelectType), ordered collections of medias;
  • image presets rendered by Glide, public file URLs (/api/files/{id}/{preset});
  • a public API of the medias and categories, and download baskets (ZIP);
  • named storage disks (Flysystem), maintenance commands for imported databases.

Requires PHP 8.4, Symfony 8.1, Doctrine ORM 3, API Platform 4.4, league/flysystem-bundle, league/glide and gingerminds/symfony-core ^1.6.

Installation

composer require gingerminds/symfony-media-manager

Then follow Installation (bundle, routes, storage, database, permissions).

Documentation

Getting started

Files & medias

  • File library — uploads, folders, usages and references, duplicates, permissions.
  • Medias — medias and media categories.
  • Forms — FilePickerType, MediaSelectType, collections of medias.
  • Images — Glide presets, URLs, cache.

API

  • API — files, medias, media categories.
  • Baskets — guest and user baskets, ZIP download, expiration.

Development

make install       # composer install (Docker)
make assets        # importmap + sass of the test application
make qa            # phpstan, phpcs, phpunit
make serve         # test application on http://127.0.0.1:8000/admin

The test application (tests/Application) boots the core and the media manager bundles on SQLite, with an in-memory storage, an Article (file and media fields, media links) and a Page (file ids in a JSON field) exercising the references and the form types. APP_ENV=test php tests/Application/bin/console ...; the test_no_basket environment disables the baskets.