1
0
cms11/app/Classes/Traits/ManagesMetadata.php

43 lines
1.0 KiB
PHP
Raw Normal View History

2024-04-17 11:41:10 +02:00
<?php
namespace App\Classes\Traits;
use App\Classes\MetadataManager;
trait ManagesMetadata
{
private array $metadataManagers = [];
/**
* Register a metadata manager for specified filename
*/
private function registerMetadataManager(string $filename): MetadataManager
{
$filename = $this->getFilenameInDataBundle($filename, '.json');
2024-04-17 11:41:10 +02:00
if (!array_key_exists($filename, $this->metadataManagers)) {
$this->metadataManagers[$filename] = new MetadataManager($filename, $this->disk);
}
return $this->metadataManagers[$filename];
}
/**
* Save all metadata files that needs to be
*/
private function saveMetadata()
{
foreach ($this->metadataManagers as $manager) {
$manager->save();
}
}
/**
* Return an instance of metadata manager for specified filename
*/
public function metadata(?string $filename = 'index'): MetadataManager
{
return $this->registerMetadataManager($filename);
}
}