Skip to content

Commit 65b6d6a

Browse files
committed
1.6 finished
1 parent b57fe75 commit 65b6d6a

File tree

10 files changed

+86
-5
lines changed

10 files changed

+86
-5
lines changed

readme.md

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ This package requires the following dependencies:
3838
Via Composer
3939

4040
``` bash
41-
$ composer require timehunter/laravel-file-generator "^1.5.0"
41+
$ composer require timehunter/laravel-file-generator "^1.6.0"
4242
```
4343

4444
If your Laravel framework version <= 5.4, please register the service provider in your config file: /config/app.php, otherwise please skip it.
@@ -83,7 +83,8 @@ class ExampleSimpleInterfaceTemplate implements InterfaceSimpleTemplateInterface
8383
'functions' => [
8484
'public function get()',
8585
'public function update()'
86-
]
86+
],
87+
'annotations'=[]
8788
];
8889
}
8990
}
@@ -148,6 +149,7 @@ getTemplateData()
148149
'traits' => [
149150
'ExampleTrait'
150151
],
152+
'annotations'=[],
151153
'functions' => [
152154
'public function get()',
153155
'public function update()'
@@ -165,6 +167,7 @@ getTemplateData()
165167
'directory' => app_path() . '/Test',
166168
'interface_name' => 'ExampleInterface',
167169
'namespace' => 'App\Example',
170+
'annotations'=[],
168171
'functions' => [
169172
'public function get()',
170173
'public function update()'
@@ -198,7 +201,8 @@ getTemplateData()
198201
'functions' => [
199202
'public function get()',
200203
'public function update()'
201-
]
204+
],
205+
'annotations'=[]
202206
];
203207
}
204208
```
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
<?php
2+
/**
3+
* Created by PhpStorm.
4+
* User: dadeng
5+
* Date: 2018/12/7
6+
* Time: 下午8:35
7+
*/
8+
9+
namespace TimeHunter\LaravelFileGenerator\Interfaces;
10+
11+
12+
interface RouteSimpleTemplateInterface
13+
{
14+
15+
public function getTemplateData();
16+
}

src/LaravelFileGenerator.php

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,12 @@
66
use TimeHunter\LaravelFileGenerator\Interfaces\ClassTemplateInterface;
77
use TimeHunter\LaravelFileGenerator\Interfaces\InterfaceSimpleTemplateInterface;
88
use TimeHunter\LaravelFileGenerator\Interfaces\InterfaceTemplateInterface;
9+
use TimeHunter\LaravelFileGenerator\Interfaces\RouteSimpleTemplateInterface;
910
use TimeHunter\LaravelFileGenerator\Interfaces\TraitSimpleTemplateInterface;
1011
use TimeHunter\LaravelFileGenerator\Interfaces\TraitTemplateInterface;
1112
use TimeHunter\LaravelFileGenerator\Services\ClassFileGenerator;
1213
use TimeHunter\LaravelFileGenerator\Services\InterfaceFileGenerator;
14+
use TimeHunter\LaravelFileGenerator\Services\RouteFileGenerator;
1315
use TimeHunter\LaravelFileGenerator\Services\TraitFileGenerator;
1416

1517

@@ -29,6 +31,10 @@ public function getGenerator($object)
2931
if ($object instanceof TraitSimpleTemplateInterface || $object instanceof TraitTemplateInterface) {
3032
return new TraitFileGenerator($object);
3133
}
34+
35+
if ($object instanceof RouteSimpleTemplateInterface ) {
36+
return new RouteFileGenerator($object);
37+
}
3238
return null;
3339
}
3440

src/Services/AbstractFileGenerator.php

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010

1111
use TimeHunter\LaravelFileGenerator\Interfaces\ClassSimpleTemplateInterface;
1212
use TimeHunter\LaravelFileGenerator\Interfaces\InterfaceSimpleTemplateInterface;
13+
use TimeHunter\LaravelFileGenerator\Interfaces\RouteSimpleTemplateInterface;
1314
use TimeHunter\LaravelFileGenerator\Interfaces\TraitSimpleTemplateInterface;
1415

1516

@@ -40,13 +41,17 @@ public function getData()
4041
return $this->template->getTemplateData();
4142
}
4243

44+
if ($this->template instanceof RouteSimpleTemplateInterface) {
45+
return $this->template->getTemplateData();
46+
}
47+
4348
return $this->getTemplateData();
4449
}
4550

4651
public function checkDir($directory)
4752
{
4853
//Check if the directory already exists.
49-
if(!is_dir($directory)){
54+
if (!is_dir($directory)) {
5055
//Directory does not exist, so lets create it.
5156
mkdir($directory, 0755, true);
5257
}
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
<?php
2+
/**
3+
* Created by PhpStorm.
4+
* User: dadeng
5+
* Date: 2018/12/7
6+
* Time: 下午8:33
7+
*/
8+
9+
namespace TimeHunter\LaravelFileGenerator\Services;
10+
11+
12+
class RouteFileGenerator extends AbstractFileGenerator
13+
{
14+
protected $templateView = 'LaravelFileGenerator::routes';
15+
16+
public function getFileName()
17+
{
18+
return 'routes';
19+
}
20+
21+
public function getTemplateData()
22+
{
23+
return [];
24+
}
25+
}

templates/annotations.blade.php

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
/**
2+
@foreach($notes as $note)
3+
* {{$note}}
4+
@endforeach
5+
*/

templates/class.blade.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44
use {{$use}};
55
@endforeach
66

7+
@if(isset($data['annotations']))@include('LaravelFileGenerator::annotations',['notes'=>$data['annotations']])@endif
8+
79
{{$data['class_type']}} {{$data['class_name']}} @if($data['extends'])extends @endif{{$data['extends']}} @if($data['implements'])implements @foreach($data['implements'] as $key =>$implement)@if(count($data['implements']) === $key+1){{$implement}} @else{{$implement}},@endif @endforeach @endif
810

911
{

templates/interface.blade.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
namespace {{$data['namespace']}};
22

3-
interface {{$data['interface_name']}}
3+
@if(isset($data['annotations']))@include('LaravelFileGenerator::annotations',['notes'=>$data['annotations']])@endif
44

5+
interface {{$data['interface_name']}}
56
{
67
@foreach($data['functions'] as $function)
78
{!! $function !!};

templates/routes.blade.php

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
// for web
2+
Route::prefix('{{$data['domain']}}/web')->group(function () {
3+
@foreach($data['uri'] as $uri)
4+
Route::{{$uri['method']}}('{{$uri['uri']}}', '{{$uri['web_class']}}{{$uri['function']}}')->name('{{$uri['key']}}');
5+
@endforeach
6+
});
7+
8+
9+
10+
// for api
11+
Route::prefix('{{$data['domain']}}/api/v1')->group(function () {
12+
@foreach($data['uri'] as $uri)
13+
Route::{{$uri['method']}}('{{$uri['uri']}}', '{{$uri['api_class']}}{{$uri['function']}}')->name('{{$uri['key']}}');
14+
@endforeach
15+
});

templates/trait.blade.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44
use {{$use}};
55
@endforeach
66

7+
@if(isset($data['annotations']))@include('LaravelFileGenerator::annotations',['notes'=>$data['annotations']])@endif
8+
79
trait {{$data['trait_name']}}
810

911
{

0 commit comments

Comments
 (0)