Plugin vaults

Companions (VoodDocs, VoodTutorials, your plugin) register a dedicated folder tree so authors do not mix product assets.

Register a root

In your service provider:

PHP
use Voodflow\Vmedia\Support\Integration\RegistersPluginVault;

RegistersPluginVault::register(
    source: 'acme',
    slug: 'acme',
    name: 'Acme',
);

RegistersPluginVault::ensureOnBoot($this->app, 'acme');

Or call Vmedia::registerPluginVault(...) / Vmedia::ensurePluginVault('acme').

Sync all roots: php artisan vmedia:ensure-plugin-roots.

Resolve upload targets

PHP
use Voodflow\Vmedia\Support\Integration\PluginVaultRootGroup;
use Voodflow\Vmedia\Support\Integration\PluginVaultLibraryGallery;

PluginVaultRootGroup::for('acme');
$album = PluginVaultLibraryGallery::album('acme'); // preferred upload album

Lock a picker to your vault

PHP
VmediaPicker::make('hero')
    ->images()
    ->attachToRecord(false)
    ->vaultGallery(fn (): int => (int) PluginVaultLibraryGallery::album('acme')->getKey());

Built-in roots from the ecosystem include vdocs and vtuts.