marshmallow/metadata

A package to simply add metadata to models

v1.2.1 2024-11-15 14:30 UTC

README

Latest Version on Packagist GitHub Code Style Action Status Total Downloads

Add metadata to any model with a simple cast

Installation

You can install the package via composer:

composer require marshmallow/metadata

You can publish and run the migrations with:

php artisan vendor:publish --tag="metadata-migrations"
php artisan migrate

You can publish the config file with:

php artisan vendor:publish --tag="metadata-config"

This is the contents of the published config file:

return [
    /*
     * The fully qualified class name of the metadata model.
     */
    'metadata_model' => Marshmallow\Models\Metadata::class,

    /*
     * The fully qualified class name of the metadata cast.
     */
    'metadata_cast' => Marshmallow\Casts\MetadataCast::class,
];

Usage

Add the following trait to your model

use Marshmallow\Metadata\Traits\HasMetadata;

use HasMetadata;

Add add cast for your required field.

use Marshmallow\Metadata\Casts\MetadataCast;

protected $casts = [
    'example' => MetadataCast::class,
];

After which you can get & set your field using normal methods;

$example_model->example_field = 'This is an example';

$example_field = $example_model->example_field;
// 'This is an example'

The data from the field will be decoded & encoded to a json format.

Testing

composer test

Changelog

Please see CHANGELOG for more information on what has changed recently.

Contributing

Please see CONTRIBUTING for details.

Security Vulnerabilities

Please review our security policy on how to report security vulnerabilities.

Credits

License

The MIT License (MIT). Please see License File for more information.