Skip to content

Commit 823c98d

Browse files
committed
Initial Commit
Split from original project, `darsyn/ip`.
0 parents  commit 823c98d

18 files changed

+1153
-0
lines changed

.gitattributes

+4
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
* text=auto
2+
3+
/.github/ export-ignore
4+
/tests/ export-ignore
+32
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
name: "Static Analysis"
2+
3+
on:
4+
pull_request:
5+
branches:
6+
- 'develop'
7+
push:
8+
branches:
9+
- 'develop'
10+
- 'main'
11+
12+
jobs:
13+
14+
phpstan:
15+
runs-on: 'ubuntu-22.04'
16+
strategy:
17+
matrix:
18+
php:
19+
- '8.3'
20+
steps:
21+
- uses: 'actions/checkout@v2'
22+
- uses: 'shivammathur/setup-php@v2'
23+
with:
24+
php-version: '${{ matrix.php }}'
25+
- uses: 'ramsey/composer-install@v2'
26+
with:
27+
dependency-versions: 'highest'
28+
# Require PHPStan via command-line instead of adding to Composer's
29+
# "require-dev"; we only want to run static analysis once on the highest
30+
# version of PHP available.
31+
- run: 'composer require --dev phpstan/phpstan phpstan/phpstan-deprecation-rules'
32+
- run: './vendor/bin/phpstan analyze --no-progress --error-format="github"'

.github/workflows/testing.yaml

+59
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
name: "Linting and Unit Tests"
2+
3+
on:
4+
pull_request:
5+
branches:
6+
- 'develop'
7+
push:
8+
branches:
9+
- 'develop'
10+
- 'main'
11+
12+
jobs:
13+
14+
syntax-linting:
15+
runs-on: 'ubuntu-20.04'
16+
strategy:
17+
matrix:
18+
php:
19+
- '5.6'
20+
- '7.0'
21+
- '7.1'
22+
- '7.2'
23+
- '7.3'
24+
- '7.4'
25+
- '8.0'
26+
- '8.1'
27+
- '8.2'
28+
- '8.3'
29+
steps:
30+
- uses: 'actions/checkout@v2'
31+
- uses: 'shivammathur/setup-php@v2'
32+
with:
33+
php-version: '${{ matrix.php }}'
34+
- run: 'find src/ -type f -name "*.php" -print0 | xargs -0 -n1 -P4 php -l -n | (! grep -v "No syntax errors detected" )'
35+
36+
unit-testing:
37+
runs-on: 'ubuntu-20.04'
38+
strategy:
39+
matrix:
40+
php:
41+
- '5.6'
42+
- '7.0'
43+
- '7.1'
44+
- '7.2'
45+
- '7.3'
46+
- '7.4'
47+
- '8.0'
48+
- '8.1'
49+
- '8.2'
50+
- '8.3'
51+
steps:
52+
- uses: 'actions/checkout@v2'
53+
- uses: 'shivammathur/setup-php@v2'
54+
with:
55+
php-version: '${{ matrix.php }}'
56+
- uses: 'ramsey/composer-install@v2'
57+
with:
58+
dependency-versions: 'highest'
59+
- run: './vendor/bin/phpunit --bootstrap="tests/bootstrap.php" --test-suffix="Test.php" tests'

.gitignore

+4
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
/.idea/
2+
/vendor/
3+
# Because this library will never be the root package, don't commit Composer's lock file.
4+
/composer.lock

CODE_OF_CONDUCT.md

+132
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,132 @@
1+
# Contributor Covenant Code of Conduct
2+
3+
## Our Pledge
4+
5+
We as members, contributors, and leaders pledge to make participation in our
6+
community a harassment-free experience for everyone, regardless of age, body
7+
size, visible or invisible disability, ethnicity, sex characteristics, gender
8+
identity and expression, level of experience, education, socio-economic status,
9+
nationality, personal appearance, race, caste, color, religion, or sexual
10+
identity and orientation.
11+
12+
We pledge to act and interact in ways that contribute to an open, welcoming,
13+
diverse, inclusive, and healthy community.
14+
15+
## Our Standards
16+
17+
Examples of behavior that contributes to a positive environment for our
18+
community include:
19+
20+
* Demonstrating empathy and kindness toward other people
21+
* Being respectful of differing opinions, viewpoints, and experiences
22+
* Giving and gracefully accepting constructive feedback
23+
* Accepting responsibility and apologizing to those affected by our mistakes,
24+
and learning from the experience
25+
* Focusing on what is best not just for us as individuals, but for the overall
26+
community
27+
28+
Examples of unacceptable behavior include:
29+
30+
* The use of sexualized language or imagery, and sexual attention or advances of
31+
any kind
32+
* Trolling, insulting or derogatory comments, and personal or political attacks
33+
* Public or private harassment
34+
* Publishing others' private information, such as a physical or email address,
35+
without their explicit permission
36+
* Other conduct which could reasonably be considered inappropriate in a
37+
professional setting
38+
39+
## Enforcement Responsibilities
40+
41+
Community leaders are responsible for clarifying and enforcing our standards of
42+
acceptable behavior and will take appropriate and fair corrective action in
43+
response to any behavior that they deem inappropriate, threatening, offensive,
44+
or harmful.
45+
46+
Community leaders have the right and responsibility to remove, edit, or reject
47+
comments, commits, code, wiki edits, issues, and other contributions that are
48+
not aligned to this Code of Conduct, and will communicate reasons for moderation
49+
decisions when appropriate.
50+
51+
## Scope
52+
53+
This Code of Conduct applies within all community spaces, and also applies when
54+
an individual is officially representing the community in public spaces.
55+
Examples of representing our community include using an official e-mail address,
56+
posting via an official social media account, or acting as an appointed
57+
representative at an online or offline event.
58+
59+
## Enforcement
60+
61+
Instances of abusive, harassing, or otherwise unacceptable behavior may be
62+
reported to the community leaders responsible for enforcement at
63+
64+
All complaints will be reviewed and investigated promptly and fairly.
65+
66+
All community leaders are obligated to respect the privacy and security of the
67+
reporter of any incident.
68+
69+
## Enforcement Guidelines
70+
71+
Community leaders will follow these Community Impact Guidelines in determining
72+
the consequences for any action they deem in violation of this Code of Conduct:
73+
74+
### 1. Correction
75+
76+
**Community Impact**: Use of inappropriate language or other behavior deemed
77+
unprofessional or unwelcome in the community.
78+
79+
**Consequence**: A private, written warning from community leaders, providing
80+
clarity around the nature of the violation and an explanation of why the
81+
behavior was inappropriate. A public apology may be requested.
82+
83+
### 2. Warning
84+
85+
**Community Impact**: A violation through a single incident or series of
86+
actions.
87+
88+
**Consequence**: A warning with consequences for continued behavior. No
89+
interaction with the people involved, including unsolicited interaction with
90+
those enforcing the Code of Conduct, for a specified period of time. This
91+
includes avoiding interactions in community spaces as well as external channels
92+
like social media. Violating these terms may lead to a temporary or permanent
93+
ban.
94+
95+
### 3. Temporary Ban
96+
97+
**Community Impact**: A serious violation of community standards, including
98+
sustained inappropriate behavior.
99+
100+
**Consequence**: A temporary ban from any sort of interaction or public
101+
communication with the community for a specified period of time. No public or
102+
private interaction with the people involved, including unsolicited interaction
103+
with those enforcing the Code of Conduct, is allowed during this period.
104+
Violating these terms may lead to a permanent ban.
105+
106+
### 4. Permanent Ban
107+
108+
**Community Impact**: Demonstrating a pattern of violation of community
109+
standards, including sustained inappropriate behavior, harassment of an
110+
individual, or aggression toward or disparagement of classes of individuals.
111+
112+
**Consequence**: A permanent ban from any sort of public interaction within the
113+
community.
114+
115+
## Attribution
116+
117+
This Code of Conduct is adapted from the [Contributor Covenant][homepage],
118+
version 2.1, available at
119+
[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1].
120+
121+
Community Impact Guidelines were inspired by
122+
[Mozilla's code of conduct enforcement ladder][Mozilla CoC].
123+
124+
For answers to common questions about this code of conduct, see the FAQ at
125+
[https://www.contributor-covenant.org/faq][FAQ]. Translations are available at
126+
[https://www.contributor-covenant.org/translations][translations].
127+
128+
[homepage]: https://www.contributor-covenant.org
129+
[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html
130+
[Mozilla CoC]: https://github.com/mozilla/diversity
131+
[FAQ]: https://www.contributor-covenant.org/faq
132+
[translations]: https://www.contributor-covenant.org/translations

LICENSE.md

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

README.md

+36
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
This library provides Doctrine types for [`darsyn/ip`][ip].
2+
3+
# Documentation
4+
5+
Please refer to the [`darsyn/ip`][ip] project for complete documentation.
6+
7+
## Compatibility
8+
9+
This library has extensive test coverage using PHPUnit on PHP versions: `5.6`,
10+
`7.0`, `7.1`, `7.2`, `7.3`, `7.4`, `8.0`, `8.1`, `8.2`, and `8.3`.
11+
12+
Static analysis is performed with PHPStan at `max` level on PHP `8.3`, using
13+
core, bleeding edge, and deprecation rules.
14+
15+
The Doctrine features are compatible with Doctrine DBAL `^2.3 || ^3.0`. Types
16+
are provided for `Ipv4`, `IPv6`, and `Multi` IP types from the parent
17+
[`darsyn/ip`][ip] project.
18+
19+
## Code of Conduct
20+
21+
This project includes and adheres to the [Contributor Covenant as a Code of
22+
Conduct](CODE_OF_CONDUCT.md).
23+
24+
# License
25+
26+
Please see the [separate licence file](LICENSE.md) included in this repository
27+
for a full copy of the MIT licence, which this project is licensed under.
28+
29+
# Authors
30+
31+
- [Zan Baldwin](https://zanbaldwin.com)
32+
33+
If you make a contribution (submit a pull request), don't forget to add your
34+
name here!
35+
36+
[ip]: https://packagist.org/packages/darsyn/ip

composer.json

+46
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
{
2+
"name": "darsyn/ip-doctrine",
3+
"description": "Doctrine types for darsyn/ip",
4+
"license": "MIT",
5+
"keywords": ["doctrine", "ip"],
6+
"type": "library",
7+
"homepage": "https://github.com/darsyn/ip-doctrine",
8+
"authors": [
9+
{
10+
"name": "Zan Baldwin",
11+
"email": "[email protected]",
12+
"homepage": "https://zanbaldwin.com"
13+
}
14+
],
15+
"autoload": {
16+
"psr-4": {
17+
"Darsyn\\IP\\Doctrine\\": "src/"
18+
}
19+
},
20+
"require": {
21+
"php": ">=5.6",
22+
"ext-pdo": "*",
23+
"darsyn/ip": "^5.0",
24+
"doctrine/dbal": "^2.3 || ^3"
25+
},
26+
"autoload-dev": {
27+
"psr-4": {
28+
"Darsyn\\IP\\Tests\\Doctrine\\": "tests/"
29+
}
30+
},
31+
"require-dev": {
32+
"phpstan/phpstan": "^1.11",
33+
"phpstan/phpstan-deprecation-rules": "^1.2",
34+
"phpunit/phpunit": "*"
35+
},
36+
"conflict": {
37+
"doctrine/dbal": ">=4"
38+
},
39+
"prefer-stable": true,
40+
"config": {
41+
"sort-packages": true
42+
},
43+
"suggest": {
44+
"doctrine/dbal": "to use IP as a column type"
45+
}
46+
}

phpstan.neon

+13
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
parameters:
2+
level: 'max'
3+
paths: [ 'src', 'tests' ]
4+
checkFunctionNameCase: true
5+
checkGenericClassInNonGenericObjectType: true
6+
reportUnmatchedIgnoredErrors: true
7+
treatPhpDocTypesAsCertain: false
8+
parallel:
9+
maximumNumberOfProcesses: 4
10+
11+
includes:
12+
- 'vendor/phpstan/phpstan-deprecation-rules/rules.neon'
13+
- 'vendor/phpstan/phpstan/conf/bleedingEdge.neon'

0 commit comments

Comments
 (0)