2022-12-05 23:01:12 +08:00

87 lines
1.9 KiB
PHP

<?php
namespace Modules\Develop\Support\Generate;
use Catch\CatchAdmin;
use Illuminate\Support\Facades\File;
use Illuminate\Support\Str;
class Module
{
public function __construct(
public string $module,
protected bool $controller,
protected bool $models,
protected bool $requests,
protected bool $database
) {
}
/**
* create
*
* @return void
*/
public function create(): void
{
if ($this->controller) {
CatchAdmin::getModuleControllerPath($this->module);
}
if ($this->models) {
CatchAdmin::getModuleModelPath($this->module);
}
if ($this->requests) {
CatchAdmin::getModuleRequestPath($this->module);
}
if ($this->database) {
CatchAdmin::getModuleMigrationPath($this->module);
CatchAdmin::getModuleSeederPath($this->module);
}
$this->createProvider();
$this->createRoute();
}
/**
* delete
*
* @return void
*/
public function delete(): void
{
}
/**
* create provider
*
* @return void
*/
protected function createProvider(): void
{
CatchAdmin::getModuleProviderPath($this->module);
File::put(
CatchAdmin::getModuleProviderPath($this->module).sprintf('%sServiceProvider.php', ucfirst($this->module)),
Str::of(
File::get(__DIR__.DIRECTORY_SEPARATOR.'stubs'.DIRECTORY_SEPARATOR.'provider.stub')
)->replace(['{Module}', '{module}'], [ucfirst($this->module), $this->module])
);
}
/**
* create route
*
* @return void
*/
protected function createRoute(): void
{
File::copy(__DIR__.DIRECTORY_SEPARATOR.'stubs'.DIRECTORY_SEPARATOR.'route.stub', CatchAdmin::getModuleRoutePath($this->module));
}
}