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

51 lines
1.2 KiB
PHP
Raw Normal View History

2024-04-17 15:29:12 +02:00
<?php
namespace App\Classes\Traits;
use App\Classes\AttachmentsManager;
trait ManagesAttachments
{
private array $attachmentsManagers = [];
/**
* Register an attachments manager for specified filename
*/
2024-04-17 16:18:39 +02:00
private function registerAttachmentsManager(string $kind): AttachmentsManager
2024-04-17 15:29:12 +02:00
{
2024-04-17 16:18:39 +02:00
if (!array_key_exists($kind, $this->attachmentsManagers)) {
$this->attachmentsManagers[$kind] = new AttachmentsManager($kind, $this->dataDir, $this->disk);
2024-04-17 15:29:12 +02:00
}
2024-04-17 16:18:39 +02:00
return $this->attachmentsManagers[$kind];
2024-04-17 15:29:12 +02:00
}
/**
* Load all attachments files
*/
private function loadAttachments()
{
foreach ($this->attachmentsManagers as $manager) {
$manager->load();
}
}
2024-04-17 15:29:12 +02:00
/**
* Save all attachments files that needs to be
*/
private function saveAttachments()
{
foreach ($this->attachmentsManagers as $manager) {
$manager->save();
}
}
/**
2024-04-17 16:18:39 +02:00
* Return an instance of attachments manager for specified kind of files
2024-04-17 15:29:12 +02:00
*/
2024-04-17 16:18:39 +02:00
public function attachments(string $kind): AttachmentsManager
2024-04-17 15:29:12 +02:00
{
2024-04-17 16:18:39 +02:00
return $this->registerAttachmentsManager($kind);
2024-04-17 15:29:12 +02:00
}
}