Files
pcm-metadata-bundle/README.md
2025-11-27 16:02:46 +00:00

45 lines
1.2 KiB
Markdown

# PCM Metadata Bundle
Easily add scalar metadata to a Symfony entity via the use of a key-value interface.
# Installation
1. Add this repository to `composer.json`:
```json
"repositories": [
{
"type": "vcs",
"url": "ssh://git@git.pcmdev.co.uk:2222/pcm-libraries/pcm-metadata-bundle.git"
}
],
```
2. Install the bundle:
```sh
composer require pcm/metadata-bundle
```
3. If not set already add the following config to `doctrine.yaml` to prevent errors:
```yaml
doctrine:
orm:
enable_native_lazy_objects: true
```
# Usage
1. Use the `MetadataTrait` inside an entity:
```php
class MyEntity
{
use MetadataTrait;
}
```
2. Create and execute a new migration. The trait adds a `metadata` database field and as such we need to create a migration.
3. Access the metadata object with the readonly property `metadata`:
```php
$entity->metadata->set("name", "PCM");
$entity->metadata->get("name"); // "PCM"
$entity->metadata->isSet("name"); // true
```
> Like updating the value of a property normally, setting metadata values will not automatically update the database.
You must call `flush()` from the `EntityManager` as usual when you wish to persist data.