Skip to content

Commit 4a28ada

Browse files
authored
Initial commit
0 parents  commit 4a28ada

21 files changed

+775
-0
lines changed

.editorconfig

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
root = true
2+
3+
[*]
4+
indent_style = tab
5+
charset = utf-8
6+
end_of_line = lf
7+
trim_trailing_whitespace = true
8+
insert_final_newline = true
9+
10+
[*.py]
11+
indent_style = space
12+
indent_size = 4
13+
14+
[*.{yml,yaml}]
15+
indent_style = space
16+
indent_size = 2

.gitattributes

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
/.build export-ignore
2+
/.github export-ignore
3+
/.idea export-ignore
4+
/.phan export-ignore
5+
/.phpdoc export-ignore
6+
/docs export-ignore
7+
/examples export-ignore
8+
/tests export-ignore
9+
/.editorconfig export-ignore
10+
/.gitattributes export-ignore
11+
/.gitignore export-ignore
12+
/.readthedocs.yml export-ignore
13+
/composer.lock export-ignore
14+
/phpcs.xml.dist export-ignore
15+
/phpdoc.xml.dist export-ignore
16+
/phpmd.xml.dist export-ignore
17+
/phpunit.xml.dist export-ignore
18+
/phpstan.dist.neon export-ignore
19+
/phpstan-baseline.neon export-ignore
20+
21+
*.php diff=php

.github/FUNDING.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
ko_fi: codemasher

.github/ISSUE_TEMPLATE/bug_report.md

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
---
2+
name: Bug report
3+
about: You have found a bug? Does the library not behave as expected? That's great (ok, not that great)! Please help us to improve!
4+
title: '[BUG]'
5+
labels: 'bug'
6+
---
7+
8+
<!--
9+
Please FOLLOW THE ISSUE TEMPLATE unless you have a good reason not to.
10+
If you have a question or an issue that is not a bug,
11+
please use the Q&A section under discussions instead. Thanks!
12+
-->
13+
14+
**Describe the bug or unexpected behaviour**
15+
16+
A clear and concise description of what the bug is.
17+
18+
19+
**Steps to reproduce the behavior**
20+
21+
- When i do ...
22+
- The code below ...
23+
- Error message: ...
24+
25+
26+
**Code sample** (if applicable)
27+
28+
```php
29+
// your code here
30+
```
31+
32+
33+
**Expected behavior**
34+
35+
A clear and concise description of what you expected to happen.
36+
37+
38+
**Screenshots**
39+
40+
If applicable, add screenshots to help explain your problem.
41+
42+
43+
**Environment (please complete the following information):**
44+
45+
- PHP version/OS: [e.g. 7.4.12, Ubuntu 20.04]
46+
- Library version: [e.g. 4.3.1]
47+
48+
49+
**Additional context**
50+
51+
Add any other context about the problem here.

.github/ISSUE_TEMPLATE/config.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
blank_issues_enabled: false
2+
contact_links:
3+
- name: "You have a question or an issue that is not a bug?"
4+
about: "Please use the Q&A section under discussions. Thanks!"
5+
url: https://github.com/chillerlan/php-library-template/discussions
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
---
2+
name: Feature request
3+
about: You have an idea for a new feature (or improve an existing one)? Great!
4+
title: '[ENHANCEMENT]'
5+
labels: 'enhancement'
6+
---
7+
8+
<!--
9+
Please FOLLOW THE ISSUE TEMPLATE unless you have a good reason not to.
10+
If you have a question or an issue that is not a feature request,
11+
please use the Q&A section under discussions instead. Thanks!
12+
-->
13+
14+
**Describe the feature**
15+
16+
A clear and concise description of the requested feature.
17+
18+
19+
**Code sample** (if applicable)
20+
21+
```php
22+
// your code here
23+
```
24+
25+
26+
**Additional context**
27+
28+
Add any other context here (if applicable).
29+
30+
31+
**Are you (the requester) willing to submit a pull request for that feature?**
32+
33+
[YES|NO] (A yes will greatly increase the chance that the feature will be added)

.github/PULL_REQUEST_TEMPLATE.md

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
## Proposed changes
2+
3+
<!-- Describe your changes here to communicate to the maintainers why you'd like to include this pull request.
4+
If it fixes a bug or resolves a feature request, be sure to link to that issue. -->
5+
6+
7+
<!-- You can erase any of the parts below that are not applicable to your Pull Request. -->
8+
9+
## Types of changes
10+
11+
<!-- Put an `x` in the boxes that apply -->
12+
13+
What types of changes does your code introduce?
14+
15+
- [ ] Bugfix (non-breaking change which fixes an issue)
16+
- [ ] New feature (non-breaking change which adds functionality)
17+
- [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
18+
- [ ] Documentation fix or enhancement (no code was touched)
19+
- [ ] Other (CI, dependencies, etc., please describe)
20+
21+
22+
## Checklist:
23+
24+
- [ ] I have checked to ensure there aren't other open [Issues](../../../issues) or [Pull Requests](../../../pulls) for the same update/change
25+
- [ ] I have added tests that prove my fix is effective or that my feature works
26+
- [ ] I have added necessary documentation (if appropriate)
27+
- [ ] Any dependent changes have been merged and published in downstream modules
28+
- [ ] Static analysis and unit tests pass locally with my changes
29+
30+
31+
## Further comments
32+
33+
If this is a relatively large or complex change, kick off the discussion by explaining why you chose the solution you did and what alternatives you considered, etc...

.github/workflows/ci.yml

Lines changed: 108 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,108 @@
1+
# https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions
2+
# https://github.com/sebastianbergmann/phpunit/blob/main/.github/workflows/ci.yaml
3+
4+
# https://github.com/actions/checkout
5+
# https://github.com/actions/upload-artifact
6+
# https://github.com/shivammathur/setup-php
7+
# https://github.com/ramsey/composer-install
8+
# https://github.com/codecov/codecov-action
9+
# https://github.com/codacy/codacy-coverage-reporter-action
10+
# https://github.com/JamesIves/github-pages-deploy-action
11+
# https://github.com/stefanzweifel/git-auto-commit-action
12+
13+
on:
14+
push:
15+
branches:
16+
- main
17+
pull_request:
18+
branches:
19+
- main
20+
21+
name: "Continuous Integration"
22+
23+
env:
24+
PHP_EXTENSIONS: "" # caution: setting 'none' resets/disables shared extensions
25+
PHP_INI_VALUES: memory_limit=-1, error_reporting=-1, display_errors=On
26+
27+
jobs:
28+
29+
static-code-analysis:
30+
name: "Static Code Analysis"
31+
runs-on: ubuntu-latest
32+
33+
strategy:
34+
fail-fast: true
35+
matrix:
36+
php-version:
37+
- "8.1"
38+
- "8.2"
39+
- "8.3"
40+
41+
steps:
42+
- name: "Checkout"
43+
uses: actions/checkout@v4
44+
45+
- name: "Install PHP"
46+
uses: shivammathur/setup-php@v2
47+
with:
48+
php-version: ${{ matrix.php-version }}
49+
extensions: ${{ env.PHP_EXTENSIONS }}
50+
ini-values: ${{ env.PHP_INI_VALUES }}
51+
coverage: none
52+
53+
- name: "Validate composer.json"
54+
run: composer validate --ansi --strict
55+
56+
- name: "Install dependencies with composer"
57+
uses: ramsey/composer-install@v3
58+
59+
- name: "Run PHPStan"
60+
run: php vendor/bin/phpstan
61+
62+
63+
tests:
64+
name: "Unit Tests"
65+
needs: static-code-analysis
66+
runs-on: ${{ matrix.os }}
67+
68+
strategy:
69+
fail-fast: false
70+
matrix:
71+
os:
72+
- ubuntu-latest
73+
- windows-latest
74+
php-version:
75+
- "8.1"
76+
- "8.2"
77+
- "8.3"
78+
79+
steps:
80+
- name: "Checkout"
81+
uses: actions/checkout@v4
82+
83+
- name: "Install PHP with extensions"
84+
uses: shivammathur/setup-php@v2
85+
with:
86+
php-version: ${{ matrix.php-version }}
87+
extensions: ${{ env.PHP_EXTENSIONS }}
88+
ini-values: ${{ env.PHP_INI_VALUES }}
89+
coverage: pcov
90+
91+
- name: "Install dependencies with composer"
92+
uses: ramsey/composer-install@v3
93+
94+
- name: "Run tests with phpunit"
95+
run: php vendor/bin/phpunit --colors=always --configuration=phpunit.xml.dist
96+
97+
# - name: "Send code coverage report to Codecov.io"
98+
# uses: codecov/codecov-action@v4
99+
# with:
100+
# token: ${{ secrets.CODECOV_TOKEN }}
101+
# files: .build/coverage/clover.xml
102+
103+
# - name: "Send code coverage report to Codacy"
104+
# uses: codacy/codacy-coverage-reporter-action@v1
105+
# with:
106+
# project-token: ${{ secrets.CODACY_PROJECT_TOKEN }}
107+
# coverage-reports: .build/coverage/clover.xml
108+

.gitignore

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
# IDE - IntelliJ
2+
.idea/*
3+
# Keep the code styles.
4+
!.idea/codeStyles
5+
.idea/codeStyles/*
6+
!.idea/codeStyles/Project.xml
7+
!.idea/codeStyles/codeStyleConfig.xml
8+
# Keep the inspection levels
9+
!.idea/inspectionProfiles
10+
.idea/inspectionProfiles/*
11+
!.idea/inspectionProfiles/Project_Default.xml
12+
13+
# project stuff
14+
.build/*
15+
vendor/*
16+
composer.lock
17+
phpcs.xml
18+
phpdoc.xml
19+
phpmd.xml
20+
phpunit.xml
21+
phpstan.neon

.idea/inspectionProfiles/Project_Default.xml

Lines changed: 8 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)