dejwcake/craftable-media

Associate files with Eloquent models

Installs: 646

Dependents: 2

Suggesters: 0

Security: 0

Stars: 0

Watchers: 0

Forks: 13

Type:project

pkg:composer/dejwcake/craftable-media

1.0.1 2026-01-17 20:57 UTC

This package is auto-updated.

Last update: 2026-01-17 21:08:39 UTC


README

This package adds media management capabilities to your Eloquent models. It builds on Spatie's spatie/laravel-medialibrary and adds:

  • Collections definition – a fluent API for defining media collections, inspired by conversion definitions
  • Auto-processing – saving an Eloquent model can automatically process and attach media collections from the request
  • Authorization – control who has permission to attach specific media to specific models
  • Private access – control who has permission to view specific media

Documentation

You can find full documentation at https://docs.getcraftable.com/#/media.

How to develop this project

Composer

Update dependencies:

docker compose run -it --rm test composer update

Composer normalization:

docker compose run -it --rm php-qa composer normalize

Run tests

Run tests with pcov:

docker compose run -it --rm test ./vendor/bin/phpunit -d pcov.enabled=1

To switch between postgresql and mariadb change in docker-compose.yml DB_CONNECTION environmental variable:

- DB_CONNECTION: pgsql
+ DB_CONNECTION: mysql

Run code analysis tools (php-qa)

PHP compatibility:

docker compose run -it --rm php-qa phpcs --standard=.phpcs.compatibility.xml --cache=.phpcs.cache

Code style:

docker compose run -it --rm php-qa phpcs -s --colors --extensions=php

Fix style issues:

docker compose run -it --rm php-qa phpcbf -s --colors --extensions=php

Static analysis (phpstan):

docker compose run -it --rm php-qa phpstan analyse --configuration=phpstan.neon

Mess detector (phpmd):

docker compose run -it --rm php-qa phpmd ./src,./config,./install-stubs,./resources,./routes,./tests ansi phpmd.xml --suffixes php --baseline-file phpmd.baseline.xml