PHP code example of inlayphp / media

1. Go to this page and download the library: Download inlayphp/media library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

inlayphp / media example snippets


use Illuminate\Http\Request;
use Inlay\Media\Enums\MediaVisibility;
use Inlay\Media\Models\MediaFolder;
use Inlay\Media\Services\MediaUploader;

final class UploadController
{
    public function __invoke(Request $request, MediaUploader $uploader)
    {
        $folder = MediaFolder::query()->find($request->integer('folder_id'));

        $asset = $uploader->upload(
            file: $request->file('attachment'),
            folder: $folder,
            metadata: [
                'alt' => $request->string('alt')->toString(),
                'caption' => $request->string('caption')->toString(),
            ],
            visibility: MediaVisibility::Private,
        );

        return ['id' => $asset->key()];
    }
}

return [
    'models' => [
        'asset' => App\Models\Asset::class,
        'collection' => App\Models\AssetCollection::class,
        'folder' => App\Models\AssetFolder::class,
    ],
];

use Inlay\Media\Enums\MediaVisibility;
use Inlay\Media\Services\MediaLibrary;

$library->moveAsset($asset, $archiveFolder);
$library->moveFolder($archiveFolder, $parentFolder);
$collection = $library->createCollection('Homepage');
$library->syncCollections($asset, [$collection->getKey()]);
$library->setVisibility($asset, MediaVisibility::Public);
$library->trash($asset);
$library->restore($asset);
$library->permanentlyDelete($asset);

use Inlay\Media\Contracts\MediaAssetContract;
use Inlay\Media\Contracts\MediaTransformer;
use Inlay\Media\Support\TransformerRegistry;

final class ExtractImageDimensions implements MediaTransformer
{
    public function supports(MediaAssetContract $asset): bool
    {
        return str_starts_with($asset->mimeType(), 'image/');
    }

    public function transform(MediaAssetContract $asset): void
    {
        // Dispatch expensive work to a queue here.
    }
}

app(TransformerRegistry::class)->register(new ExtractImageDimensions);

use Inlay\Media\Contracts\{MediaAssetContract, MediaReference, MediaReferenceResolver};
use Inlay\Media\Support\MediaReferenceRegistry;

app(MediaReferenceRegistry::class)->register('pages', new class implements MediaReferenceResolver {
    public function resolve(MediaAssetContract $asset): iterable
    {
        if ($asset->key() === null) {
            return;
        }

        yield new MediaReference('page', 'Homepage hero', '/admin/pages/1');
    }
});
bash
composer vendor:publish --tag=inlay-media-migrations
php artisan migrate
bash
php artisan vendor:publish --tag=inlay-media-config
bash
vendor/bin/pest tests/MediaTest.php