first commit
This commit is contained in:
112
modules/Develop/Support/Generate/Create/Creator.php
Normal file
112
modules/Develop/Support/Generate/Create/Creator.php
Normal file
@@ -0,0 +1,112 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Modules\Develop\Support\Generate\Create;
|
||||
|
||||
use Illuminate\Contracts\Filesystem\FileNotFoundException;
|
||||
use Illuminate\Support\Facades\File;
|
||||
|
||||
/**
|
||||
* creator
|
||||
*/
|
||||
abstract class Creator
|
||||
{
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
protected string $ext = '.php';
|
||||
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
protected string $module;
|
||||
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
protected string $file;
|
||||
|
||||
/**
|
||||
* create
|
||||
*
|
||||
* @return bool|string
|
||||
* @throws FileNotFoundException
|
||||
*/
|
||||
public function create(): bool|string
|
||||
{
|
||||
return $this->put();
|
||||
}
|
||||
|
||||
/**
|
||||
* the file which content put in
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
abstract public function getFile(): string;
|
||||
|
||||
/**
|
||||
* get content
|
||||
* @return string|bool
|
||||
*/
|
||||
abstract public function getContent(): string|bool;
|
||||
|
||||
/**
|
||||
* @return string|bool
|
||||
* @throws FileNotFoundException
|
||||
*/
|
||||
protected function put(): string|bool
|
||||
{
|
||||
if (! $this->getContent()) {
|
||||
return false;
|
||||
}
|
||||
|
||||
$this->file = $this->getFile();
|
||||
|
||||
File::put($this->file, $this->getContent());
|
||||
|
||||
if (File::exists($this->file)) {
|
||||
return $this->file;
|
||||
}
|
||||
|
||||
throw new FileNotFoundException("create [$this->file] failed");
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* set ext
|
||||
*
|
||||
* @param string $ext
|
||||
* @return $this
|
||||
*/
|
||||
protected function setExt(string $ext): static
|
||||
{
|
||||
$this->ext = $ext;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* set module
|
||||
*
|
||||
* @param string $module
|
||||
* @return $this
|
||||
*/
|
||||
public function setModule(string $module): static
|
||||
{
|
||||
$this->module = $module;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* get file
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getGenerateFile(): string
|
||||
{
|
||||
return $this->file;
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user