diff --git a/README.md b/README.md index 3709afc..be5324e 100755 --- a/README.md +++ b/README.md @@ -103,15 +103,15 @@ use DevLnk\LaravelCodeBuilder\Enums\BuildType; return [ 'builders' => [ - BuildType::MODEL, -// BuildType::DTO, -// BuildType::ADD_ACTION, -// BuildType::EDIT_ACTION, -// BuildType::REQUEST, -// BuildType::CONTROLLER, -// BuildType::ROUTE, -// BuildType::TABLE, - BuildType::FORM, + 'model', +// 'addAction', +// 'editAction', +// 'request', +// 'controller', +// 'route', + 'form', +// 'DTO', +// 'table', ], //... ]; diff --git a/config/code_builder.php b/config/code_builder.php index 85497c1..7e585c1 100644 --- a/config/code_builder.php +++ b/config/code_builder.php @@ -1,19 +1,17 @@ [ // Core - BuildType::MODEL, - BuildType::ADD_ACTION, - BuildType::EDIT_ACTION, - BuildType::REQUEST, - BuildType::CONTROLLER, - BuildType::ROUTE, - BuildType::FORM, - BuildType::DTO, - BuildType::TABLE, + 'model', + 'addAction', + 'editAction', + 'request', + 'controller', + 'route', + 'form', + 'DTO', + 'table', // Additionally ], diff --git a/src/Commands/LaravelCodeBuildCommand.php b/src/Commands/LaravelCodeBuildCommand.php index 732c3d2..269c0d4 100644 --- a/src/Commands/LaravelCodeBuildCommand.php +++ b/src/Commands/LaravelCodeBuildCommand.php @@ -194,7 +194,7 @@ protected function prepareBuilders(): void } if($this->option('builders')) { - foreach (config('code_builder.builders', []) as $builder) { + foreach ($this->configBuilders() as $builder) { if(! in_array($builder, $this->builders)) { $this->builders[] = $builder; } @@ -202,7 +202,7 @@ protected function prepareBuilders(): void } if(empty($this->builders)) { - $this->builders = config('code_builder.builders'); + $this->builders = $this->configBuilders(); } } @@ -265,6 +265,17 @@ protected function builders(): array ]; } + /** + * @return array + */ + protected function configBuilders(): array + { + $builders = (array) config('code_builder.builders', []); + return array_map(function ($builder) { + return ($builder instanceof BuildType) ? $builder : BuildType::from($builder); + }, $builders); + } + protected function projectFileName(string $filePath): string { if(str_contains($filePath, '/resources/views')) { diff --git a/src/Services/Builders/Core/ModelBuilder.php b/src/Services/Builders/Core/ModelBuilder.php index 15c359d..1c1ef36 100644 --- a/src/Services/Builders/Core/ModelBuilder.php +++ b/src/Services/Builders/Core/ModelBuilder.php @@ -147,8 +147,8 @@ public function relationsToModel(): string $result = $result->newLine()->newLine()->append( $stubBuilder->getFromStub([ '{relation}' => $relation, - '{relation_model}' => $column->relation()->table()->ucFirstSingular(), '{relation_column}' => $relationColumn, + '{relation_model}' => $column->relation()->model(), ]) ); } diff --git a/src/Services/CodeStructure/RelationStructure.php b/src/Services/CodeStructure/RelationStructure.php index bd62948..c2a074a 100644 --- a/src/Services/CodeStructure/RelationStructure.php +++ b/src/Services/CodeStructure/RelationStructure.php @@ -26,4 +26,14 @@ public function table(): NameStr { return $this->table; } + + public function model(): string + { + return $this->table + ->str() + ->camel() + ->singular() + ->ucfirst() + ->value(); + } }