PHPackages                             yurizoom/moonshine-media-manager - 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. yurizoom/moonshine-media-manager

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

yurizoom/moonshine-media-manager
================================

Media manager for MoonShine

4.6.0(4d ago)112.2k↑210.4%21MITPHPPHP ^8.2

Since Jun 9Pushed 5d ago1 watchersCompare

[ Source](https://github.com/yurizoom/moonshine-media-manager)[ Packagist](https://packagist.org/packages/yurizoom/moonshine-media-manager)[ RSS](/packages/yurizoom-moonshine-media-manager/feed)WikiDiscussions main Synced 2d ago

READMEChangelog (10)Dependencies (4)Versions (26)Used By (1)

MoonShine Media Manager
=======================

[](#moonshine-media-manager)

Файловый менеджер для [MoonShine](https://moonshine-laravel.com/).

### Поддержка версий

[](#поддержка-версий)

MoonShineПакетДокументация4.0+4.x[Ниже ↓](#%D0%BD%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0-v4-moonshine-4)4.0+3.x[Ниже ↓](#%D0%BD%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0-v3-moonshine-4)3.0+2.x2.0+1.xСкриншоты
---------

[](#скриншоты)

  **Менеджер** **Пикер**   [![Media Manager](blob/manager.jpg)](blob/manager.jpg) [![Media Manager Picker](blob/picker.jpg)](blob/picker.jpg) Установка
---------

[](#установка)

```
composer require yurizoom/moonshine-media-manager
```

---

Настройка v4 (MoonShine 4+)
---------------------------

[](#настройка-v4-moonshine-4)

Полностью AJAX — загрузка, удаление, переименование, навигация по папкам без перезагрузки страницы.

После установки опубликуйте ассеты:

```
php artisan vendor:publish --tag=moonshine-media-manager-assets
```

### Конфигурация

[](#конфигурация)

Добавьте в `config/moonshine.php`:

```
'media_manager' => [
    'auto_menu' => true,
    'disk' => config('filesystem.default', 'public'),
    'allowed_ext' => 'jpg,jpeg,png,gif,webp,avif,svg,pdf,doc,docx,xls,xlsx,ppt,pptx,zip,rar,txt,mp3,mp4,wav,avi,mov',
    'max_file_size' => env('MOONSHINE_MEDIA_MANAGER_MAX_FILE_SIZE', 50 * 1024 * 1024),
    'default_view' => 'table',
],
```

### Подключение OffCanvas

[](#подключение-offcanvas)

В `app/MoonShine/Layouts/MoonShineLayout.php`:

```
use YuriZoom\MoonShineMediaManager\Components\MediaManagerOffCanvas;

final class MoonShineLayout extends AppLayout
{
    protected function getContentComponents(): array
    {
        return [
            ...parent::getContentComponents(),
            MediaManagerOffCanvas::make(),
        ];
    }
}
```

`MediaManagerOffCanvas` — глобальный компонент, рендерит offcanvas-панель с файловым менеджером. Именно через неё работают все picker-поля на страницах. Assets загружаются автоматически через компонент.

### Добавление в меню (опционально)

[](#добавление-в-меню-опционально)

Если `auto_menu` включён (по умолчанию), пункт появится автоматически. Для ручного размещения:

```
use YuriZoom\MoonShineMediaManager\Pages\MediaManagerPage;

protected function menu(): array
{
    return [
        MenuItem::make(MediaManagerPage::class),
    ];
}
```

### Поле MediaManagerPicker

[](#поле-mediamanagerpicker)

Поле для выбора файлов из менеджера прямо в форме. Работает с обычными полями, Json и Layouts.

**Базовое использование:**

```
use YuriZoom\MoonShineMediaManager\Fields\MediaManagerPicker;

// Одно изображение
MediaManagerPicker::make('Изображение', 'image')
    ->allowedTypes(['image']),

// Множественный выбор с перетаскиванием
MediaManagerPicker::make('Галерея', 'images')
    ->multiple()
    ->allowedTypes(['image']),
```

**Фильтрация файлов** — по типу или по расширению, можно комбинировать:

```
// По типу (из менеджера): image, video, audio, pdf, word, code, zip, txt, ppt
->allowedTypes(['image'])
->allowedTypes(['image', 'pdf'])

// По расширению (точный контроль):
->allowedExtensions(['jpg', 'png', 'webp'])
->allowedExtensions(['pdf', 'doc', 'docx', 'xls', 'xlsx'])
```

**С Json:**

```
use MoonShine\UI\Fields\Json;

Json::make('Мета', 'meta')
    ->fields([
        Text::make('Заголовок', 'title'),
        MediaManagerPicker::make('Изображение', 'image')
            ->allowedTypes(['image']),
        MediaManagerPicker::make('Документ', 'document')
            ->allowedExtensions(['pdf', 'doc', 'docx']),
        MediaManagerPicker::make('Файлы', 'files')
            ->multiple()
            ->allowedExtensions(['pdf', 'doc', 'docx', 'xls', 'xlsx']),
    ]),
```

**С Layouts:**

```
use MoonShine\Layouts\Fields\Layouts;

Layouts::make('Контент', 'content')
    ->addLayout('Блок с изображением', 'image_block', [
        Text::make('Заголовок', 'title'),
        MediaManagerPicker::make('Изображение', 'image')
            ->allowedTypes(['image']),
    ])
    ->addLayout('Файловый блок', 'files_block', [
        Text::make('Заголовок', 'title'),
        MediaManagerPicker::make('Документы', 'documents')
            ->multiple()
            ->allowedExtensions(['pdf', 'doc', 'docx', 'xls', 'xlsx']),
    ]),
```

### Возможности v4

[](#возможности-v4)

- **AJAX навигация** — переход по папкам без перезагрузки
- **Загрузка файлов** — множественная загрузка с проверкой MIME-типа, расширения и размера файла
- **Создание папок** — прямо из интерфейса
- **Переименование / перемещение** — через модалку с указанием нового пути
- **Удаление** — с подтверждением
- **Скачивание** — по клику
- **URL файла** — просмотр ссылки с копированием
- **Два вида** — таблица и сетка (grid)
- **Быстрый переход** — ввод пути вручную
- **Picker-поле** — выбор файлов из менеджера прямо в форме
- **Drag-and-drop** — перетаскивание для изменения порядка в picker
- **Подсветка навигации** — при переходе к файлу из picker
- **Проверка файлов** — детекция несуществующих файлов (broken state)
- **Превью** — клик по изображению открывает полноразмерный просмотр
- **Не-изображения** — отображение иконки с расширением для PDF, DOC и т.д.
- **Layouts / Json** — полная интеграция с moonshine/layouts-field и Json-полями

### Конфигурация v4

[](#конфигурация-v4)

ПараметрПо умолчаниюОписание`auto_menu``true`Автоматически добавить в боковое меню`disk``public`Диск файлового хранилища (только локальный)`allowed_ext``jpg,jpeg,png,gif,...`Разрешённые для загрузки расширения (проверка по MIME + расширению)`max_file_size``10485760` (10 MB)Максимальный размер загружаемого файла в байтах`default_view``table`Вид по умолчанию: `table` или `list`---

Настройка v3 (MoonShine 4)
--------------------------

[](#настройка-v3-moonshine-4)

Добавьте в `config/moonshine.php`:

```
'media_manager' => [
    'auto_menu' => true,
    'disk' => config('filesystem.default', 'public'),
    'allowed_ext' => 'jpg,jpeg,png,pdf,doc,docx,zip',
    'default_view' => 'table',
],
```

Для добавления в меню:

```
use YuriZoom\MoonShineMediaManager\Pages\MediaManagerPage;

protected function menu(): array
{
    return [
        MenuItem::make(new MediaManagerPage()),
    ];
}
```

---

Настройка v2 (MoonShine 3)
--------------------------

[](#настройка-v2-moonshine-3)

Если необходимо изменить настройки, добавьте в файл `config/moonshine.php`:

```
[
    'media_manager' => [
        // Автоматическое добавление в меню
        'auto_menu' => true,
        // Корневая директория
        'disk' => config('filesystem.default', 'public'),
        // Разрешенные для загрузки расширения файлов
        'allowed_ext' => 'jpg,jpeg,png,pdf,doc,docx,zip',
        // Вид менеджера по-умолчанию
        'default_view' => 'table',
    ]
]
```

Для добавления в меню в `app/MoonShine/Layouts/MoonShineLayout.php`:

```
use YuriZoom\MoonShineMediaManager\Pages\MediaManagerPage;

protected function menu(): array
{
    return [
        MenuItem::make(new MediaManagerPage()),
    ];
}
```

---

Разработка
----------

[](#разработка)

Для сборки ассетов (JS + CSS) из исходников:

```
npm install
npm run build
```

Готовые файлы появятся в `dist/`. Для публикации в проекте:

```
php artisan vendor:publish --tag=moonshine-media-manager-assets --force
```

---

Лицензия
--------

[](#лицензия)

[The MIT License (MIT)](LICENSE).

###  Health Score

54

—

FairBetter than 96% of packages

Maintenance99

Actively maintained with recent releases

Popularity29

Limited adoption so far

Community13

Small or concentrated contributor base

Maturity63

Established project with proven stability

 Bus Factor1

Top contributor holds 70% 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 ~32 days

Recently: every ~3 days

Total

24

Last Release

4d ago

Major Versions

1.x-dev → 2.0.02025-03-06

2.x-dev → 3.0.02025-11-11

3.x-dev → 4.0.02026-05-16

### Community

Maintainers

![](https://www.gravatar.com/avatar/b9d9366ce52d73326cf2d9908a6639ae62708d6c06e945ce3f0f210aa1f8a607?d=identicon)[yurizoom](/maintainers/yurizoom)

---

Top Contributors

[![povly](https://avatars.githubusercontent.com/u/48402954?v=4)](https://github.com/povly "povly (70 commits)")[![yurizoom](https://avatars.githubusercontent.com/u/18616112?v=4)](https://github.com/yurizoom "yurizoom (30 commits)")

---

Tags

managermediamoonshine

### Embed Badge

![Health badge](/badges/yurizoom-moonshine-media-manager/health.svg)

```
[![Health](https://phpackages.com/badges/yurizoom-moonshine-media-manager/health.svg)](https://phpackages.com/packages/yurizoom-moonshine-media-manager)
```

###  Alternatives

[laravel-admin-ext/media-manager

Media manager for laravel

135143.7k4](/packages/laravel-admin-ext-media-manager)[tomatophp/filament-media-manager

Manage your media files using spatie media library with easy to use GUI for FilamentPHP

14852.3k3](/packages/tomatophp-filament-media-manager)

PHPackages © 2026

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