1
0
cms11/app/Services/BundleCreator/Creators/BaseBundleCreator.php

45 lines
1021 B
PHP

<?php
namespace App\Services\BundleCreator\Creators;
use App\Exceptions\NotImplemented;
use App\Services\BundleCreator\Contracts\CreatesBundle;
use Illuminate\Filesystem\FilesystemAdapter;
abstract class BaseBundleCreator implements CreatesBundle
{
/**
* Create a bundle
*/
public function createBundle(): string
{
throw new NotImplemented();
}
/**
* Return a boolean value indicating if the creator can actually make the
* bundle using known data.
*/
public function canCreateBundle(): bool
{
return true;
}
/**
* Return an array describing what kind of data the creator needs in
* addition to the one it already has
*/
public function formSpecs(): ?array
{
return null;
}
/**
* Return an instance of the creator, using specified data as input
*/
public static function make(?array $data, FilesystemAdapter $disk): CreatesBundle
{
return new static($data, $disk);
}
}