Skip to content

Commit 0634535

Browse files
add docs
1 parent 8b3e500 commit 0634535

File tree

3 files changed

+134
-1
lines changed

3 files changed

+134
-1
lines changed

README.md

Lines changed: 133 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,133 @@
1-
# Transform Laravel requests
1+
2+
<p align="center">
3+
<img src="resources/images/diagram.png?raw=true">
4+
</p>
5+
6+
7+
8+
# Transform laravel requests
9+
10+
transform laravel requests in an easy way.
11+
12+
## List of contents
13+
14+
- [Install](#install)
15+
- [How to use](#how-to-use)
16+
- [Create a new data transformer](#create-a-new-data-transformer)
17+
- [Transform requests](#transform-requests)
18+
- [Change log](#change-log)
19+
- [Contributing](#contributing)
20+
- [Security](#security)
21+
- [Credits](#credits)
22+
- [License](#license)
23+
24+
## Install
25+
26+
Via Composer
27+
28+
```bash
29+
$ composer require shetabit/transform-request
30+
```
31+
32+
## How to use
33+
34+
#### Create a new data transformer
35+
36+
we use transformers to transform request datas.
37+
38+
you can run the below command in your console in order to create a new data transformer named `TestTransformer`.
39+
40+
```bash
41+
$ composer php artisan make:transformer TestTransformer
42+
```
43+
44+
all transformers will be created in `App\Http\Transformers` path.
45+
46+
#### Transformer example:
47+
48+
in all transformers, the `transform` method will transform your data into your ideal one.
49+
for example we can write the below code in it:
50+
51+
```php
52+
namespace App\Http\Transformers;
53+
54+
use Shetabit\Transformer\Contracts\TransformerInterface;
55+
56+
class TestTransformer implements TransformerInterface
57+
{
58+
/**
59+
* transform given data
60+
*
61+
* @param array $data
62+
* @return array
63+
*/
64+
public function transform(array $data) : array {
65+
/*
66+
input data :
67+
[
68+
'n' => 'mahdi',
69+
'f' => 'khanzadi'
70+
]
71+
72+
transformed data:
73+
[
74+
'name' => 'mahdi',
75+
'family' => 'khanzadi',
76+
'username' => 'mahdikhanzadi'
77+
]
78+
*/
79+
80+
return [
81+
'name' => $data['n'] ?? null,
82+
'family' => $data['f'] ?? null,
83+
'username' => ($data['n'] ?? null).($data['f'] ?? null)
84+
];
85+
}
86+
}
87+
```
88+
89+
#### Transform requests
90+
91+
we can use a transformer to transform requests like the below:
92+
93+
```php
94+
namespace App\Http\Controllers;
95+
96+
use App\Http\Transformers\TestTransformer;
97+
use Illuminate\Http\Request;
98+
99+
class TestController extends Controller
100+
{
101+
public function __invoke(Request $request) {
102+
$data = $request->transform()->get(new TestTransformer());
103+
104+
print_r($data)
105+
}
106+
}
107+
```
108+
109+
## Change log
110+
111+
Please see [CHANGELOG](CHANGELOG.md) for more information on what has changed recently.
112+
113+
## Contributing
114+
115+
Please see [CONTRIBUTING](CONTRIBUTING.md) and [CONDUCT](CONDUCT.md) for details.
116+
117+
## Security
118+
119+
If you discover any security related issues, please email khanzadimahdi@gmail.com instead of using the issue tracker.
120+
121+
## Credits
122+
123+
- [Mahdi khanzadi][link-author]
124+
- [All Contributors][link-contributors]
125+
126+
## License
127+
128+
The MIT License (MIT). Please see [License File](LICENSE.md) for more information.
129+
130+
[link-packagist]: https://packagist.org/packages/shetabit/transform-request
131+
[link-code-quality]: https://scrutinizer-ci.com/g/shetabit/transform-request
132+
[link-author]: https://github.com/khanzadimahdi
133+
[link-contributors]: ../../contributors
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
<mxfile modified="2019-08-27T08:50:51.130Z" host="www.draw.io" agent="Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:68.0) Gecko/20100101 Firefox/68.0" etag="LbEaOdvPORbH6PZggIga" version="11.2.3" type="device" pages="1"><diagram name="Page-1" id="b520641d-4fe3-3701-9064-5fc419738815">7VnbctowEP0aHtOxLezAYyGXPqQzmdLp5VFYi62JLFFZBMjXd2VLYGNImJQmeYAwGe/R6rbnrLRAj4yL1a2m8/yrYiB6UcBWPXLVi6LhIMT/FljXQEyCGsg0ZzXUACb8CWow9OiCMygdVkNGKWH4vA2mSkpITQujWqtl222mBGsBc5pBaxkWmKRUQMftJ2cmd2gYNNy/AM9yN/Ugdg1Tmj5kWi2km08qCXVLQf0wzrXMKVPLBkSue2SslTL1U7Eag7BRbUfs5kDrZskapDmmQxQCHSbDKIkpC8JkcJHUIzxSsXBh4HK+MAhp+LOA0rh1m7UPU7nkhaC4QzLKTSEQDPFxpqSZOKcA7TTngt3RtVrYdZUGQ+StUa40f0J/6jtjszZOEFFiR+NCjJVQupqSQGD/Wj0ndkQ3l4YS+977IIQb6I6Wxq9HCUHnJZ9WK7QuBdUZlyNljCqck9/aTXv6WfXCdip4JhFLcSLQdhpLOjC/DU9uPWHBU/cs6BTEaKMSP3SlE7t7rR6gMV9QvTYtXow+zDe04MLm2A/QjErqo1/HL4ycvW/Arlycgh5BG1g1ICefW1AFGL1GF9/q08FledQntb1s5EzifPJGuoTBpctVl6fZZuytYPHBafZI/V529DuTtMDHz1X65Yx3BIwbNW3xthlwtDQ16Jma05TL7A5mdk/9LfLNbdNCy5wbmCBup1viSYmYwvjORKWNnDMGstKOoYZONxkzV1yaKjTxCN8YwXHwKe7FuOQx2uHWxrd110ixxKVTXpEJKPalTdh9NB/M+5d59zwnx9Hs/U7K8qDDstiy/JBT+UTPRJ+I6Dh6R6KHHaKLmuQhuSRJFJCYnGk+Cc2Xg3ekOex3eP6uqZwpXeC9+sYVB1Z455LjI5ccZLBbchx5RIX+o8Vpxdu9jTBpZVmpl9kPQHgOnMvms4abGk76OxomezQ8eDsNdy/aGdeluTgXz0dctpsT4J+q531s/5fb1n/50CB7UYLeofpcRp+W8n119JtRHocdygs15cIRfi6nT073vnr6zegmYYdGYBn4ysLx06D0pasVCwt7m/sLvlFoDNAGyVxrWFuNtiOvWlhx88sPgM+/7VTIX21drdzMlbH2hsQ4/WoajV7W3HarLN/v4PVdqoVO4ZAE3GcU3HsGh3Tij1Yb7WdVokFQwx/bXzXv04Drem/l3igfknb5QOKdqqBepeu1o6TNMl4pruRZcWGi5SpTkorrLfqhtPY6/pMj6PcaOR39B44ANLc/EtSkbn+DIdd/AQ==</diagram></mxfile>

resources/images/diagram.png

12.6 KB
Loading

0 commit comments

Comments
 (0)