Skip to content

Commit

Permalink
Merge pull request #485 from andrey-helldar/patch/2023-02-28/1
Browse files Browse the repository at this point in the history
Added the ability to create `data` files, `casts`, `transformers` and `rules` using Laravel Idea plugin
  • Loading branch information
rubenvanassche committed Jul 5, 2023
2 parents 1363ed8 + a192ad6 commit 3378080
Show file tree
Hide file tree
Showing 5 changed files with 128 additions and 2 deletions.
82 changes: 82 additions & 0 deletions ide.json
Original file line number Diff line number Diff line change
Expand Up @@ -33,5 +33,87 @@
}
]
}
],
"codeGenerations": [
{
"id": "spatie.create-laravel-data",
"name": "Create Data",
"classSuffix": "Data",
"files": [
{
"directory": "/app/Data",
"name": "${INPUT_CLASS|className|upperCamelCase}.php",
"template": {
"type": "stub",
"path": "/stubs/data.stub",
"fallbackPath": "stubs/data.stub",
"parameters": {
"DummyClass": "${INPUT_CLASS|className|upperCamelCase}",
"DummyNamespace": "${INPUT_FQN|namespace}"
}
}
}
]
},
{
"id": "spatie.create-laravel-data-cast",
"name": "Create Data Cast",
"classSuffix": "Cast",
"files": [
{
"directory": "/app/Data/Casts",
"name": "${INPUT_CLASS|className|upperCamelCase}.php",
"template": {
"type": "stub",
"path": "/stubs/data-cast.stub",
"fallbackPath": "stubs/data-cast.stub",
"parameters": {
"DummyClass": "${INPUT_CLASS|className|upperCamelCase}",
"DummyNamespace": "${INPUT_FQN|namespace}"
}
}
}
]
},
{
"id": "spatie.create-laravel-data-transformer",
"name": "Create Data Transformer",
"classSuffix": "Transformer",
"files": [
{
"directory": "/app/Data/Transformers",
"name": "${INPUT_CLASS|className|upperCamelCase}.php",
"template": {
"type": "stub",
"path": "/stubs/data-transformer.stub",
"fallbackPath": "stubs/data-transformer.stub",
"parameters": {
"DummyClass": "${INPUT_CLASS|className|upperCamelCase}",
"DummyNamespace": "${INPUT_FQN|namespace}"
}
}
}
]
},
{
"id": "spatie.create-laravel-data-rule",
"name": "Create Data Rule",
"classSuffix": "Rule",
"files": [
{
"directory": "/app/Data/Rules",
"name": "${INPUT_CLASS|className|upperCamelCase}.php",
"template": {
"type": "stub",
"path": "/stubs/data-rule.stub",
"fallbackPath": "stubs/data-rule.stub",
"parameters": {
"DummyClass": "${INPUT_CLASS|className|upperCamelCase}",
"DummyNamespace": "${INPUT_FQN|namespace}"
}
}
}
]
}
]
}
14 changes: 14 additions & 0 deletions stubs/data-cast.stub
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
<?php

namespace DummyNamespace;

use Spatie\LaravelData\Casts\Cast;
use Spatie\LaravelData\Support\DataProperty;

class DummyClass implements Cast
{
public function cast(DataProperty $property, mixed $value, array $context): mixed
{
//
}
}
16 changes: 16 additions & 0 deletions stubs/data-rule.stub
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
<?php

namespace DummyNamespace;

use Spatie\LaravelData\RuleInferrers\RuleInferrer;
use Spatie\LaravelData\Support\DataProperty;
use Spatie\LaravelData\Support\Validation\PropertyRules;
use Spatie\LaravelData\Support\Validation\ValidationContext;

class DummyClass implements RuleInferrer
{
public function handle(DataProperty $property, PropertyRules $rules, ValidationContext $context,): PropertyRules
{
//
}
}
14 changes: 14 additions & 0 deletions stubs/data-transformer.stub
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
<?php

namespace DummyNamespace;

use Spatie\LaravelData\Support\DataProperty;
use Spatie\LaravelData\Transformers\Transformer;

class DummyClass implements Transformer
{
public function transform(DataProperty $property, mixed $value): mixed
{
//
}
}
4 changes: 2 additions & 2 deletions stubs/data.stub
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
<?php

namespace {{ namespace }};
namespace DummyNamespace;

use Spatie\LaravelData\Data;

class {{ class }} extends Data
class DummyClass extends Data
{
public function __construct(
//
Expand Down

0 comments on commit 3378080

Please sign in to comment.