Skip to content

Commit 5dbeef2

Browse files
authored
Merge pull request #11 from yabhq/feat/stubs
Controller and test case stub customizations
2 parents 5e41e1d + 0994607 commit 5dbeef2

6 files changed

+228
-1
lines changed

README.md

+8
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,14 @@ A collection of traits, macros and other helpers to keep your Laravel app feelin
1111
composer require yabhq/mint
1212
```
1313

14+
### Configuration
15+
16+
The package ships with some useful stub customizations for common controller and test case starter code.
17+
18+
```
19+
php artisan vendor:publish --tag="stubs"
20+
```
21+
1422
### SavesQuietly
1523

1624
Save a model "quietly" without broadcasting any events or firing off any observers.

src/MintServiceProvider.php

+6-1
Original file line numberDiff line numberDiff line change
@@ -14,13 +14,18 @@ class MintServiceProvider extends ServiceProvider
1414
public function boot()
1515
{
1616
FactoryBuilder::mixin(new FactoryBuilderMacros);
17+
18+
if ($this->app->runningInConsole()) {
19+
$this->publishes([
20+
__DIR__.'/Stubs' => app_path('stubs'),
21+
], 'stubs');
22+
}
1723
}
1824

1925
/**
2026
* Register the application services.
2127
*/
2228
public function register()
2329
{
24-
2530
}
2631
}

src/Stubs/controller.model.api.stub

+77
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
<?php
2+
3+
namespace {{ namespace }}\API;
4+
5+
use {{ namespacedModel }};
6+
use Illuminate\Http\Request;
7+
use {{ rootNamespace }}Http\Controllers\Controller;
8+
9+
class {{ class }} extends Controller
10+
{
11+
/**
12+
* Display a listing of the resource.
13+
*
14+
* @param \Illuminate\Http\Request $request
15+
*
16+
* @return \Illuminate\Http\Response
17+
*/
18+
public function index(Request $request)
19+
{
20+
return {{ model }}::all();
21+
}
22+
23+
/**
24+
* Store a newly created resource in storage.
25+
*
26+
* @param {{ model }}CreateRequest $request
27+
28+
* @return \Illuminate\Http\Response
29+
*/
30+
public function store({{ model }}CreateRequest $request)
31+
{
32+
return {{ model }}::create($request->all());
33+
}
34+
35+
/**
36+
* Display the specified resource.
37+
*
38+
* @param \Illuminate\Http\Request $request
39+
* @param \{{ namespacedModel }} ${{ modelVariable }}
40+
41+
* @return \Illuminate\Http\Response
42+
*/
43+
public function show(Request $request, {{ model }} ${{ modelVariable }})
44+
{
45+
return ${{ modelVariable }};
46+
}
47+
48+
/**
49+
* Update the specified resource in storage.
50+
*
51+
* @param {{ model }}UpdateRequest $request
52+
* @param \{{ namespacedModel }} ${{ modelVariable }}
53+
54+
* @return \Illuminate\Http\Response
55+
*/
56+
public function update({{ model }}UpdateRequest $request, {{ model }} ${{ modelVariable }})
57+
{
58+
${{ modelVariable }}->update($request->all());
59+
60+
return ${{ modelVariable }};
61+
}
62+
63+
/**
64+
* Remove the specified resource from storage.
65+
*
66+
* @param \Illuminate\Http\Request $request
67+
* @param \{{ namespacedModel }} ${{ modelVariable }}
68+
69+
* @return \Illuminate\Http\Response
70+
*/
71+
public function destroy(Request $request, {{ model }} ${{ modelVariable }})
72+
{
73+
${{ modelVariable }}->delete();
74+
75+
return ${{ modelVariable }};
76+
}
77+
}

src/Stubs/controller.model.stub

+100
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,100 @@
1+
<?php
2+
3+
namespace {{ namespace }};
4+
5+
use {{ namespacedModel }};
6+
use {{ rootNamespace }}Http\Controllers\Controller;
7+
8+
class {{ class }} extends Controller
9+
{
10+
/**
11+
* Display a listing of the resource.
12+
*
13+
* @return \Illuminate\Http\Response
14+
*/
15+
public function index()
16+
{
17+
${{ modelVariable }}s = {{ model }}::paginate(25);
18+
19+
return view('{{ modelVariable }}s.index', compact('{{ modelVariable }}s'));
20+
}
21+
22+
/**
23+
* Show the form for creating a new resource.
24+
*
25+
* @return \Illuminate\Http\Response
26+
*/
27+
public function create()
28+
{
29+
${{ modelVariable }} = new {{ model }};
30+
31+
return view('{{ modelVariable }}s.create', compact('{{ modelVariable }}'));
32+
}
33+
34+
/**
35+
* Store a newly created resource in storage.
36+
*
37+
* @param {{ model }}CreateRequest $request
38+
39+
* @return \Illuminate\Http\Response
40+
*/
41+
public function store({{ model }}CreateRequest $request)
42+
{
43+
${{ modelVariable }} = {{ model }}::create($request->all());
44+
45+
return redirect()->route('{{ modelVariable }}s.edit', ${{ modelVariable }});
46+
}
47+
48+
/**
49+
* Display the specified resource.
50+
*
51+
* @param \{{ namespacedModel }} ${{ modelVariable }}
52+
53+
* @return \Illuminate\Http\Response
54+
*/
55+
public function show({{ model }} ${{ modelVariable }})
56+
{
57+
return view('{{ modelVariable }}s.show', ${{ modelVariable }});
58+
}
59+
60+
/**
61+
* Show the form for editing the specified resource.
62+
*
63+
* @param \{{ namespacedModel }} ${{ modelVariable }}
64+
65+
* @return \Illuminate\Http\Response
66+
*/
67+
public function edit({{ model }} ${{ modelVariable }})
68+
{
69+
return view('{{ modelVariable }}s.edit', ${{ modelVariable }});
70+
}
71+
72+
/**
73+
* Update the specified resource in storage.
74+
*
75+
* @param {{ model }}UpdateRequest $request
76+
* @param \{{ namespacedModel }} ${{ modelVariable }}
77+
78+
* @return \Illuminate\Http\Response
79+
*/
80+
public function update({{ model }}UpdateRequest $request, {{ model }} ${{ modelVariable }})
81+
{
82+
${{ modelVariable }}->update($request->all());
83+
84+
return back()->withSucces('');
85+
}
86+
87+
/**
88+
* Remove the specified resource from storage.
89+
*
90+
* @param \{{ namespacedModel }} ${{ modelVariable }}
91+
92+
* @return \Illuminate\Http\Response
93+
*/
94+
public function destroy({{ model }} ${{ modelVariable }})
95+
{
96+
${{ modelVariable }}->delete();
97+
98+
return redirect()->route('{{ modelVariable }}s.index');
99+
}
100+
}

src/Stubs/test.stub

+20
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
<?php
2+
3+
namespace {{ namespace }}\Feature;
4+
5+
use Tests\TestCase;
6+
use Illuminate\Foundation\Testing\WithFaker;
7+
use Illuminate\Foundation\Testing\RefreshDatabase;
8+
9+
class {{ class }} extends TestCase
10+
{
11+
use RefreshDatabase;
12+
13+
/** @test */
14+
public function test_example()
15+
{
16+
$response = $this->post(route('api.test.example'), []);
17+
18+
// $response->assertOk();
19+
}
20+
}

src/Stubs/test.unit.stub

+17
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
<?php
2+
3+
namespace {{ namespace }}\Unit;
4+
5+
use Tests\TestCase;
6+
use Illuminate\Foundation\Testing\RefreshDatabase;
7+
8+
class {{ class }} extends TestCase
9+
{
10+
use RefreshDatabase;
11+
12+
/** @test */
13+
public function test_example()
14+
{
15+
$this->assertTrue(true);
16+
}
17+
}

0 commit comments

Comments
 (0)