1
0
cms11/app/Classes/Bundle.php

51 lines
1.2 KiB
PHP
Raw Normal View History

2024-04-17 11:41:10 +02:00
<?php
namespace App\Classes;
use App\Classes\Traits\ManagesMarkdown;
use App\Classes\Traits\ManagesMetadata;
use Illuminate\Filesystem\FilesystemAdapter;
use Illuminate\Support\Str;
class Bundle
{
use ManagesMarkdown, ManagesMetadata;
public function __construct(protected string $path, protected FilesystemAdapter $disk)
{
$this->path = Str::start(Str::finish($this->path, '/'), '/');
}
/**
* Store all files of the bundle
*/
public function save()
{
$this->saveMetadata();
$this->saveMarkdown();
}
/**
* Gte a complete filename prefixed with bundle's path
*/
private function getFilenameInBundle(string $filename, ?string $extension = null)
{
$filename = Str::remove($this->path, $filename);
if (!empty($extension) && !Str::endsWith($filename, $extension)) {
$filename .= $extension;
}
return sprintf('%s%s', $this->path, $filename);
}
/**
* Return a boolean value indicating if there already is a bundle in
* specified path
*/
public function exists()
{
return $this->markdown()->exists();
}
}