feat: add uploader
This commit is contained in:
28
modules/Common/Repository/Options/Factory.php
Normal file
28
modules/Common/Repository/Options/Factory.php
Normal file
@@ -0,0 +1,28 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\Common\Repository\Options;
|
||||
|
||||
use Exception;
|
||||
use Illuminate\Support\Str;
|
||||
|
||||
class Factory
|
||||
{
|
||||
/**
|
||||
* make
|
||||
* @param string $optionName
|
||||
* @return OptionInterface
|
||||
* @throws Exception
|
||||
*/
|
||||
public function make(string $optionName): OptionInterface
|
||||
{
|
||||
$className = __NAMESPACE__.'\\'.Str::of($optionName)->ucfirst()->toString();
|
||||
|
||||
$class = new $className();
|
||||
|
||||
if (! $class instanceof OptionInterface) {
|
||||
throw new Exception('option must be implement [OptionInterface]');
|
||||
}
|
||||
|
||||
return $class;
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user