Skip to content

Commit f93b132

Browse files
author
Piotr Krajewski
committed
init
0 parents  commit f93b132

12 files changed

+2755
-0
lines changed

CHANGELOG.md

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
# Changelog
2+
3+
All Notable changes to `:package_name` will be documented in this file.
4+
5+
Updates should follow the [Keep a CHANGELOG](http://keepachangelog.com/) principles.
6+
7+
## NEXT - YYYY-MM-DD
8+
9+
### Added
10+
- Nothing
11+
12+
### Deprecated
13+
- Nothing
14+
15+
### Fixed
16+
- Nothing
17+
18+
### Removed
19+
- Nothing
20+
21+
### Security
22+
- Nothing

CODE_OF_CONDUCT.md

Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
# Contributor Code of Conduct
2+
3+
## Our Pledge
4+
5+
In the interest of fostering an open and welcoming environment, we as
6+
contributors and maintainers pledge to make participation in our project and
7+
our community a harassment-free experience for everyone, regardless of age, body
8+
size, disability, ethnicity, gender identity and expression, level of experience,
9+
nationality, personal appearance, race, religion, or sexual identity and
10+
orientation.
11+
12+
## Our Standards
13+
14+
Examples of behavior that contributes to creating a positive environment
15+
include:
16+
17+
* Using welcoming and inclusive language
18+
* Being respectful of differing viewpoints and experiences
19+
* Gracefully accepting constructive criticism
20+
* Focusing on what is best for the community
21+
* Showing empathy towards other community members
22+
23+
Examples of unacceptable behavior by participants include:
24+
25+
* The use of sexualized language or imagery and unwelcome sexual attention or
26+
advances
27+
* Trolling, insulting/derogatory comments, and personal or political attacks
28+
* Public or private harassment
29+
* Publishing others' private information, such as a physical or electronic
30+
address, without explicit permission
31+
* Other conduct which could reasonably be considered inappropriate in a
32+
professional setting
33+
34+
## Our Responsibilities
35+
36+
Project maintainers are responsible for clarifying the standards of acceptable
37+
behavior and are expected to take appropriate and fair corrective action in
38+
response to any instances of unacceptable behavior.
39+
40+
Project maintainers have the right and responsibility to remove, edit, or
41+
reject comments, commits, code, wiki edits, issues, and other contributions
42+
that are not aligned to this Code of Conduct, or to ban temporarily or
43+
permanently any contributor for other behaviors that they deem inappropriate,
44+
threatening, offensive, or harmful.
45+
46+
## Scope
47+
48+
This Code of Conduct applies both within project spaces and in public spaces
49+
when an individual is representing the project or its community. Examples of
50+
representing a project or community include using an official project e-mail
51+
address, posting via an official social media account, or acting as an appointed
52+
representative at an online or offline event. Representation of a project may be
53+
further defined and clarified by project maintainers.
54+
55+
## Enforcement
56+
57+
Instances of abusive, harassing, or otherwise unacceptable behavior may be
58+
reported by contacting the project team at `:author_email`. All
59+
complaints will be reviewed and investigated and will result in a response that
60+
is deemed necessary and appropriate to the circumstances. The project team is
61+
obligated to maintain confidentiality with regard to the reporter of an incident.
62+
Further details of specific enforcement policies may be posted separately.
63+
64+
Project maintainers who do not follow or enforce the Code of Conduct in good
65+
faith may face temporary or permanent repercussions as determined by other
66+
members of the project's leadership.
67+
68+
## Attribution
69+
70+
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
71+
available at [http://contributor-covenant.org/version/1/4][version]
72+
73+
[homepage]: http://contributor-covenant.org
74+
[version]: http://contributor-covenant.org/version/1/4/

CONTRIBUTING.md

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
# Contributing
2+
3+
Contributions are **welcome** and will be fully **credited**.
4+
5+
We accept contributions via Pull Requests on [Github](https://github.com/:vendor/:package_name).
6+
7+
8+
## Pull Requests
9+
10+
- **[PSR-2 Coding Standard](https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-2-coding-style-guide.md)** - Check the code style with ``$ composer check-style`` and fix it with ``$ composer fix-style``.
11+
12+
- **Add tests!** - Your patch won't be accepted if it doesn't have tests.
13+
14+
- **Document any change in behaviour** - Make sure the `README.md` and any other relevant documentation are kept up-to-date.
15+
16+
- **Consider our release cycle** - We try to follow [SemVer v2.0.0](http://semver.org/). Randomly breaking public APIs is not an option.
17+
18+
- **Create feature branches** - Don't ask us to pull from your master branch.
19+
20+
- **One pull request per feature** - If you want to do more than one thing, send multiple pull requests.
21+
22+
- **Send coherent history** - Make sure each individual commit in your pull request is meaningful. If you had to make multiple intermediate commits while developing, please [squash them](http://www.git-scm.com/book/en/v2/Git-Tools-Rewriting-History#Changing-Multiple-Commit-Messages) before submitting.
23+
24+
25+
## Running Tests
26+
27+
``` bash
28+
$ composer test
29+
```
30+
31+
32+
**Happy coding**!

LICENSE.md

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
# The MIT License (MIT)
2+
3+
Copyright (c) 2017 Piotr Krajewski <mits87@gmail.com>
4+
5+
> Permission is hereby granted, free of charge, to any person obtaining a copy
6+
> of this software and associated documentation files (the "Software"), to deal
7+
> in the Software without restriction, including without limitation the rights
8+
> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9+
> copies of the Software, and to permit persons to whom the Software is
10+
> furnished to do so, subject to the following conditions:
11+
>
12+
> The above copyright notice and this permission notice shall be included in
13+
> all copies or substantial portions of the Software.
14+
>
15+
> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16+
> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17+
> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18+
> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19+
> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20+
> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21+
> THE SOFTWARE.

README.md

Lines changed: 146 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,146 @@
1+
# eloquent-nested-attributes
2+
3+
[![Latest Version on Packagist][ico-version]][link-packagist]
4+
[![Software License][ico-license]](LICENSE.md)
5+
[![Build Status][ico-travis]][link-travis]
6+
[![Coverage Status][ico-scrutinizer]][link-scrutinizer]
7+
[![Quality Score][ico-code-quality]][link-code-quality]
8+
[![Total Downloads][ico-downloads]][link-downloads]
9+
10+
Nested attributes allow you to save attributes on associated records through the parent. By default nested attribute updating is turned off and you can enable it using the $nested attribute. When you enable nested attributes an attribute writer is defined on the model.
11+
12+
## Structure
13+
14+
If any of the following are applicable to your project, then the directory structure should follow industry best practises by being named the following.
15+
16+
```
17+
src/
18+
tests/
19+
vendor/
20+
```
21+
22+
23+
## Install
24+
25+
Via Composer
26+
27+
``` bash
28+
$ composer require mits87/eloquent-nested-attributes
29+
```
30+
31+
## Usage
32+
33+
``` php
34+
namespace App;
35+
36+
use Eloquent\NestedAttributes\Model;
37+
38+
class Post extends Model
39+
{
40+
protected $fillable = ['title'];
41+
42+
protected $nested = ['option', 'comments'];
43+
44+
public function option() {
45+
return $this->hasOne('App\Option');
46+
}
47+
48+
public function comments() {
49+
return $this->hasMany('App\Comment');
50+
}
51+
}
52+
```
53+
54+
or
55+
56+
``` php
57+
namespace App;
58+
59+
use Illuminate\Database\Eloquent\Model;
60+
use Eloquent\NestedAttributes\Traits\HasNestedAttributesTrait;
61+
62+
class Post extends Model
63+
{
64+
use HasNestedAttributesTrait;
65+
66+
...
67+
}
68+
```
69+
70+
usage:
71+
72+
``` php
73+
\App\Post::create([
74+
'title' => 'Some text',
75+
76+
'option' => [
77+
'info' => 'some info'
78+
],
79+
80+
'comments' => [
81+
[
82+
'text' => 'Comment 1'
83+
], [
84+
'text' => 'Comment 2'
85+
],
86+
]
87+
]);
88+
89+
90+
\App\Post::findOrFail(1)->update([
91+
'title' => 'Better text',
92+
93+
'option' => [
94+
'info' => 'better info'
95+
],
96+
97+
'comments' => [
98+
[
99+
'id' => 2,
100+
'text' => 'Comment 2'
101+
],
102+
]
103+
]);
104+
```
105+
106+
## Change log
107+
108+
Please see [CHANGELOG](CHANGELOG.md) for more information on what has changed recently.
109+
110+
## Testing
111+
112+
``` bash
113+
$ composer test
114+
```
115+
116+
## Contributing
117+
118+
Please see [CONTRIBUTING](CONTRIBUTING.md) and [CODE_OF_CONDUCT](CODE_OF_CONDUCT.md) for details.
119+
120+
## Security
121+
122+
If you discover any security related issues, please email mits87@gmail.com instead of using the issue tracker.
123+
124+
## Credits
125+
126+
- [Piotr Krajewski][link-author]
127+
- [All Contributors][link-contributors]
128+
129+
## License
130+
131+
The MIT License (MIT). Please see [License File](LICENSE.md) for more information.
132+
133+
[ico-version]: https://img.shields.io/packagist/v/:vendor/nested-attributes.svg?style=flat-square
134+
[ico-license]: https://img.shields.io/badge/license-MIT-brightgreen.svg?style=flat-square
135+
[ico-travis]: https://img.shields.io/travis/:vendor/nested-attributes/master.svg?style=flat-square
136+
[ico-scrutinizer]: https://img.shields.io/scrutinizer/coverage/g/:vendor/nested-attributes.svg?style=flat-square
137+
[ico-code-quality]: https://img.shields.io/scrutinizer/g/:vendor/nested-attributes.svg?style=flat-square
138+
[ico-downloads]: https://img.shields.io/packagist/dt/:vendor/nested-attributes.svg?style=flat-square
139+
140+
[link-packagist]: https://packagist.org/packages/:vendor/nested-attributes
141+
[link-travis]: https://travis-ci.org/:vendor/nested-attributes
142+
[link-scrutinizer]: https://scrutinizer-ci.com/g/:vendor/nested-attributes/code-structure
143+
[link-code-quality]: https://scrutinizer-ci.com/g/:vendor/nested-attributes
144+
[link-downloads]: https://packagist.org/packages/:vendor/nested-attributes
145+
[link-author]: https://github.com/mits87
146+
[link-contributors]: ../../contributors

composer.json

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
{
2+
"name": "eloquent/nested-attributes",
3+
"type": "library",
4+
"description": "Nested attributes allow you to save attributes on associated records through the parent. By default nested attribute updating is turned off and you can enable it using the $nested attribute. When you enable nested attributes an attribute writer is defined on the model.",
5+
"keywords": [
6+
"Laravel", "Lumen", "Eloquent", "Nested Attributes"
7+
],
8+
"homepage": "https://github.com/mits87/eloquent-nested-attributes",
9+
"license": "MIT",
10+
"authors": [
11+
{
12+
"name": "Piotr Krajewski",
13+
"email": "mits87@gmail.com"
14+
}
15+
],
16+
"require": {
17+
"php": "~5.6|~7.0",
18+
"illuminate/database": "^5.4",
19+
"illuminate/support": "~5.1",
20+
"mockery/mockery": "^0.9.9"
21+
},
22+
"require-dev": {
23+
"phpunit/phpunit" : ">=5.4.3",
24+
"squizlabs/php_codesniffer": "^2.3"
25+
},
26+
"autoload": {
27+
"psr-4": {
28+
"Eloquent\\NestedAttributes\\": "src"
29+
}
30+
},
31+
"autoload-dev": {
32+
"psr-4": {
33+
"Eloquent\\NestedAttributes\\": "tests"
34+
}
35+
},
36+
"scripts": {
37+
"test": [
38+
"vendor/bin/phpunit --colors=always",
39+
"vendor/bin/phpcs -p --standard=PSR2 --runtime-set --dry-run ignore_errors_on_exit 1 --runtime-set ignore_warnings_on_exit 1 src tests"
40+
]
41+
},
42+
"extra": {
43+
"branch-alias": {
44+
"dev-master": "1.0-dev"
45+
}
46+
},
47+
"config": {
48+
"sort-packages": true
49+
}
50+
}

0 commit comments

Comments
 (0)