From 730d2a1891e0f4f77f7b359ae908f3c01aaa2f8c Mon Sep 17 00:00:00 2001 From: Lctrs Date: Thu, 23 Jan 2020 16:01:56 +0100 Subject: [PATCH] Setup --- .dependabot/config.yml | 6 + .editorconfig | 9 +- .gitattributes | 8 +- .github/CODEOWNERS | 4 +- .github/CODE_OF_CONDUCT.md | 46 - .github/CONTRIBUTING.md | 2 +- .github/FUNDING.yml | 2 - .github/ISSUE_TEMPLATE.md | 13 - .github/ISSUE_TEMPLATE/bug_report.md | 22 + .github/settings.yml | 17 +- .github/workflows/continuous-deployment.yml | 2 +- .github/workflows/continuous-integration.yml | 36 +- .github/workflows/license.yml | 85 -- .github/workflows/stale.yml | 29 - .gitignore | 6 +- .php_cs | 43 - CHANGELOG.md | 2 +- LICENSE.md | 29 +- Makefile | 21 +- README.md | 18 +- composer.json | 41 +- composer.lock | 1294 +++++------------ infection.json => infection.json.dist | 0 phpcs.xml.dist | 12 + phpstan.neon => phpstan.neon.dist | 2 - psalm-baseline.xml | 2 +- psalm.xml | 1 + src/Example.php | 16 +- test/AutoReview/SrcCodeTest.php | 21 +- .../{phpunit.xml => phpunit.xml.dist} | 0 .../{phpunit.xml => phpunit.xml.dist} | 0 test/Unit/ExampleTest.php | 21 +- test/Unit/{phpunit.xml => phpunit.xml.dist} | 0 33 files changed, 491 insertions(+), 1319 deletions(-) delete mode 100644 .github/CODE_OF_CONDUCT.md delete mode 100644 .github/FUNDING.yml delete mode 100644 .github/ISSUE_TEMPLATE.md create mode 100644 .github/ISSUE_TEMPLATE/bug_report.md delete mode 100644 .github/workflows/license.yml delete mode 100644 .github/workflows/stale.yml delete mode 100644 .php_cs rename infection.json => infection.json.dist (100%) create mode 100644 phpcs.xml.dist rename phpstan.neon => phpstan.neon.dist (61%) rename test/AutoReview/{phpunit.xml => phpunit.xml.dist} (100%) rename test/Integration/{phpunit.xml => phpunit.xml.dist} (100%) rename test/Unit/{phpunit.xml => phpunit.xml.dist} (100%) diff --git a/.dependabot/config.yml b/.dependabot/config.yml index 0ee7e919..5fe4e29f 100644 --- a/.dependabot/config.yml +++ b/.dependabot/config.yml @@ -3,6 +3,12 @@ version: 1 update_configs: + default_labels: + - "dependency" + directory: "/" + package_manager: "github_actions" + update_schedule: "daily" + - automerged_updates: - match: dependency_type: "development" diff --git a/.editorconfig b/.editorconfig index 329611ca..f6e2367b 100644 --- a/.editorconfig +++ b/.editorconfig @@ -7,13 +7,16 @@ indent_style = space insert_final_newline = true trim_trailing_whitespace = true -[*.json] +[*.md] +trim_trailing_whitespace = false + +[*.json{,.dist}] indent_size = 2 -[*.neon] +[*.neon{,.dist}] indent_style = tab -[*.yml] +[*.{yml,yaml}{,.dist}] indent_size = 2 [Makefile] diff --git a/.gitattributes b/.gitattributes index 36d16720..fb322fbf 100644 --- a/.gitattributes +++ b/.gitattributes @@ -4,10 +4,10 @@ /.editorconfig export-ignore /.gitattributes export-ignore /.gitignore export-ignore -/.php_cs export-ignore -/infection.json export-ignore +/infection.json.dist export-ignore /Makefile export-ignore +/phpcs.xml.dist export-ignore +/phpstan.neon.dist export-ignore /phpstan-baseline.neon export-ignore -/phpstan.neon export-ignore -/psalm-baseline.xml export-ignore /psalm.xml export-ignore +/psalm-baseline.xml export-ignore diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index f1ca64b8..f1a82973 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -1,3 +1 @@ -* @localheinz -composer.json @ergebnis-bot @localheinz -composer.lock @ergebnis-bot @localheinz +* @Lctrs diff --git a/.github/CODE_OF_CONDUCT.md b/.github/CODE_OF_CONDUCT.md deleted file mode 100644 index d9159b22..00000000 --- a/.github/CODE_OF_CONDUCT.md +++ /dev/null @@ -1,46 +0,0 @@ -# Contributor Covenant Code of Conduct - -## Our Pledge - -In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation. - -## Our Standards - -Examples of behavior that contributes to creating a positive environment include: - -* Using welcoming and inclusive language -* Being respectful of differing viewpoints and experiences -* Gracefully accepting constructive criticism -* Focusing on what is best for the community -* Showing empathy towards other community members - -Examples of unacceptable behavior by participants include: - -* The use of sexualized language or imagery and unwelcome sexual attention or advances -* Trolling, insulting/derogatory comments, and personal or political attacks -* Public or private harassment -* Publishing others' private information, such as a physical or electronic address, without explicit permission -* Other conduct which could reasonably be considered inappropriate in a professional setting - -## Our Responsibilities - -Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior. - -Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful. - -## Scope - -This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers. - -## Enforcement - -Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at am@localheinz.com. The project team will review and investigate all complaints, and will respond in a way that it deems appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately. - -Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership. - -## Attribution - -This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, available at [http://contributor-covenant.org/version/1/4][version] - -[homepage]: http://contributor-covenant.org -[version]: http://contributor-covenant.org/version/1/4/ diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index 285ab618..18d31504 100644 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -6,7 +6,7 @@ For details, see [`workflows/continuous-integration.yml`](workflows/continuous-i ## Coding Standards -We are using [`friendsofphp/php-cs-fixer`](https://github.com/FriendsOfPHP/PHP-CS-Fixer) to enforce coding standards. +We are using [`doctrine/coding-standard`](https://github.com/doctrine-coding-standard) to enforce coding standards. Run diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml deleted file mode 100644 index 40c29017..00000000 --- a/.github/FUNDING.yml +++ /dev/null @@ -1,2 +0,0 @@ -custom: "https://www.buymeacoffee.com/localheinz" -github: "localheinz" diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md deleted file mode 100644 index 1788742b..00000000 --- a/.github/ISSUE_TEMPLATE.md +++ /dev/null @@ -1,13 +0,0 @@ -#### Steps required to reproduce the problem - -1. -2. -3. - -#### Expected Result - -* - -#### Actual Result - -* diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md new file mode 100644 index 00000000..d50b31f8 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -0,0 +1,22 @@ +--- +name: Bug report +about: Create a report to help us improve +title: '' +labels: bug +assignees: Lctrs + +--- + +#### Steps required to reproduce the problem + +1. +2. +3. + +#### Expected Result + +* + +#### Actual Result + +* diff --git a/.github/settings.yml b/.github/settings.yml index bf270298..f0416116 100644 --- a/.github/settings.yml +++ b/.github/settings.yml @@ -31,18 +31,7 @@ branches: - "codecov/patch" - "codecov/project" strict: false - restrictions: - - # https://developer.github.com/v3/repos/branches/#parameters-1 - - # Note: User, app, and team restrictions are only available for organization-owned repositories. - # Set to null to disable when using this configuration for a repository on a personal account. - - apps: - - "dependabot-preview" - teams: [] - users: - - "ergebnis-bot" + restrictions: null # https://developer.github.com/v3/issues/labels/#create-a-label # https://developer.github.com/v3/issues/labels/#update-a-label @@ -87,9 +76,9 @@ repository: has_pages: false has_projects: false has_wiki: false - name: "php-library-template" + name: "php-library-skeleton" private: false # https://developer.github.com/v3/repos/branches/#remove-branch-protection - topics: "php, library, template" + topics: "php, library, template, skeleton" diff --git a/.github/workflows/continuous-deployment.yml b/.github/workflows/continuous-deployment.yml index c8b2a2e9..b91f7d58 100644 --- a/.github/workflows/continuous-deployment.yml +++ b/.github/workflows/continuous-deployment.yml @@ -21,7 +21,7 @@ jobs: - name: "Create release" uses: "actions/create-release@v1.0.0" env: - GITHUB_TOKEN: "${{ secrets.ERGEBNIS_BOT_TOKEN }}" + GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}" with: draft: false prerelease: false diff --git a/.github/workflows/continuous-integration.yml b/.github/workflows/continuous-integration.yml index 95ccbac2..42d215d6 100644 --- a/.github/workflows/continuous-integration.yml +++ b/.github/workflows/continuous-integration.yml @@ -63,18 +63,18 @@ jobs: - name: "Run ergebnis/composer-normalize" run: "composer normalize --dry-run" - - name: "Create cache directory for friendsofphp/php-cs-fixer" - run: "mkdir -p .build/php-cs-fixer" + - name: "Create cache directory for squizlabs/php_codesniffer" + run: "mkdir -p .build/php_codesniffer" - - name: "Cache cache directory for friendsofphp/php-cs-fixer" + - name: "Cache cache directory for squizlabs/php_codesniffer" uses: "actions/cache@v1.0.3" with: - path: ".build/php-cs-fixer" - key: "php-${{ matrix.php-version }}-php-cs-fixer-${{ hashFiles('**/composer.lock') }}" - restore-keys: "php-${{ matrix.php-version }}-php-cs-fixer-" + path: ".build/php_codesniffer" + key: "php-${{ matrix.php-version }}-php_codesniffer-${{ hashFiles('**/composer.lock') }}" + restore-keys: "php-${{ matrix.php-version }}-php_codesniffer-" - - name: "Run friendsofphp/php-cs-fixer" - run: "vendor/bin/php-cs-fixer fix --config=.php_cs --diff --diff-format=udiff --dry-run --verbose" + - name: "Run squizlabs/php_codesniffer" + run: "vendor/bin/phpcs" dependency-analysis: name: "Dependency Analysis" @@ -120,7 +120,7 @@ jobs: run: "composer update --no-interaction --no-progress --no-suggest" - name: "Run maglnet/composer-require-checker" - uses: "docker://webfactory/composer-require-checker:2.0.0" + run: "vendor/bin/composer-require-checker" static-code-analysis: name: "Static Code Analysis" @@ -169,7 +169,7 @@ jobs: run: "mkdir -p .build/phpstan" - name: "Run phpstan/phpstan" - run: "vendor/bin/phpstan analyse --configuration=phpstan.neon" + run: "vendor/bin/phpstan analyse --configuration=phpstan.neon.dist" - name: "Create cache directory for vimeo/psalm" run: "mkdir -p .build/psalm" @@ -225,13 +225,13 @@ jobs: run: "composer update --no-interaction --no-progress --no-suggest" - name: "Run auto-review tests with phpunit/phpunit" - run: "vendor/bin/phpunit --configuration=test/AutoReview/phpunit.xml" + run: "vendor/bin/phpunit --configuration=test/AutoReview/phpunit.xml.dist" - name: "Run unit tests with phpunit/phpunit" - run: "vendor/bin/phpunit --configuration=test/Unit/phpunit.xml" + run: "vendor/bin/phpunit --configuration=test/Unit/phpunit.xml.dist" - name: "Run integration tests with phpunit/phpunit" - run: "vendor/bin/phpunit --configuration=test/Integration/phpunit.xml" + run: "vendor/bin/phpunit --configuration=test/Integration/phpunit.xml.dist" code-coverage: name: "Code Coverage" @@ -277,7 +277,7 @@ jobs: run: "composer update --no-interaction --no-progress --no-suggest" - name: "Collect code coverage with pcov and phpunit/phpunit" - run: "vendor/bin/phpunit --configuration=test/Unit/phpunit.xml --coverage-clover=.build/logs/clover.xml" + run: "vendor/bin/phpunit --configuration=test/Unit/phpunit.xml.dist --coverage-clover=.build/logs/clover.xml" - name: "Send code coverage report to Codecov.io" env: @@ -348,10 +348,4 @@ jobs: uses: "hmarr/auto-approve-action@v2.0.0" if: "(github.actor == 'dependabot[bot]' || github.actor == 'dependabot-preview[bot]') && github.event_name == 'pull_request' && startsWith(github.event.pull_request.title, 'Build(deps-dev)')" with: - github-token: "${{ secrets.ERGEBNIS_BOT_TOKEN }}" - - - name: "Approve pull requests created by @ergebnis-bot that update the license year" - uses: "hmarr/auto-approve-action@v2.0.0" - if: "github.actor == 'ergebnis-bot' && github.event_name == 'pull_request' && github.event.pull_request.title == 'Enhancement: Update license year'" - with: - github-token: "${{ secrets.ERGEBNIS_BOT_TOKEN }}" + github-token: "${{ secrets.AUTO_APPROVE_TOKEN }}" diff --git a/.github/workflows/license.yml b/.github/workflows/license.yml deleted file mode 100644 index 69b8e9c4..00000000 --- a/.github/workflows/license.yml +++ /dev/null @@ -1,85 +0,0 @@ -# https://help.github.com/en/categories/automating-your-workflow-with-github-actions - -name: "License" - -on: - schedule: - - cron: "1 0 1 1 *" - -env: - REQUIRED_PHP_EXTENSIONS: "mbstring" - -jobs: - license: - name: "License" - - runs-on: "ubuntu-latest" - - strategy: - matrix: - php-version: - - "7.1" - - dependencies: - - "locked" - - steps: - - name: "Checkout" - uses: "actions/checkout@v2.0.0" - - - name: "Install PHP with extensions" - uses: "shivammathur/setup-php@1.7.4" - with: - coverage: "none" - extensions: "${{ env.REQUIRED_PHP_EXTENSIONS }}" - php-version: "${{ matrix.php-version }}" - - - name: "Validate composer.json and composer.lock" - run: "composer validate --strict" - - - name: "Cache dependencies installed with composer" - uses: "actions/cache@v1.0.3" - with: - path: "~/.composer/cache" - key: "php-${{ matrix.php-version }}-composer-${{ matrix.dependencies }}-${{ hashFiles('**/composer.lock') }}" - restore-keys: "php-${{ matrix.php-version }}-composer-${{ matrix.dependencies }}-" - - - name: "Install lowest dependencies with composer" - if: "matrix.dependencies == 'lowest'" - run: "composer update --no-interaction --no-progress --no-suggest --prefer-lowest" - - - name: "Install locked dependencies with composer" - if: "matrix.dependencies == 'locked'" - run: "composer install --no-interaction --no-progress --no-suggest" - - - name: "Install highest dependencies with composer" - if: "matrix.dependencies == 'highest'" - run: "composer update --no-interaction --no-progress --no-suggest" - - - name: "Create cache directory for friendsofphp/php-cs-fixer" - run: "mkdir -p .build/php-cs-fixer" - - - name: "Cache cache directory for friendsofphp/php-cs-fixer" - uses: "actions/cache@v1.0.3" - with: - path: ".build/php-cs-fixer" - key: "php-${{ matrix.php-version }}-php-cs-fixer-${{ hashFiles('**/composer.lock') }}" - restore-keys: "php-${{ matrix.php-version }}-php-cs-fixer-" - - - name: "Run friendsofphp/php-cs-fixer" - run: "vendor/bin/php-cs-fixer fix --config=.php_cs --diff --diff-format=udiff --dry-run --verbose" - - - name: "Open pull request updating license year" - uses: "gr2m/create-or-update-pull-request-action@v1.2.9" - with: - author: "ergebnis-bot " - branch: "feature/license-year" - body: | - This PR - - * [x] updates the license year - commit-message: "Enhancement: Update license year" - path: "." - title: "Enhancement: Update license year" - env: - GITHUB_TOKEN: "${{ secrets.ERGEBNIS_BOT_TOKEN }}" diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml deleted file mode 100644 index 7af8aa2a..00000000 --- a/.github/workflows/stale.yml +++ /dev/null @@ -1,29 +0,0 @@ -# https://github.com/actions/stale - -name: "Stale" - -on: - schedule: - - cron: "0 12 * * *" - -jobs: - stale: - runs-on: "ubuntu-latest" - - steps: - - name: "Close stale issues and pull requests" - uses: "actions/stale@v1.1.0" - with: - days-before-close: 5 - days-before-stale: 60 - repo-token: "${{ secrets.ERGEBNIS_BOT_TOKEN }}" - stale-issue-label: "stale" - stale-issue-message: > - Since this issue has not had any activity within the last sixty days, I have marked it as stale. - - I will close it if no further activity occurs within the next five days. - stale-pr-label: "stale" - stale-pr-message: > - Since this pull request has not had any activity within the last sixty days, I have marked it as stale. - - I will close it if no further activity occurs within the next five days. diff --git a/.gitignore b/.gitignore index 2dc50e82..60534f07 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,6 @@ -/.build/ +/.build +/test/*/phpunit.xml /vendor/ +/infection.json +/phpcs.xml +/phpstan.neon diff --git a/.php_cs b/.php_cs deleted file mode 100644 index 7a9b971a..00000000 --- a/.php_cs +++ /dev/null @@ -1,43 +0,0 @@ -save(); - -$config = Config\Factory::fromRuleSet(new Config\RuleSet\Php71($license->header())); - -$config->getFinder() - ->ignoreDotFiles(false) - ->in(__DIR__) - ->exclude([ - '.build', - '.dependabot', - '.github', - ]) - ->name('.php_cs'); - -$config->setCacheFile(__DIR__ . '/.build/php-cs-fixer/.php_cs.cache'); - -return $config; diff --git a/CHANGELOG.md b/CHANGELOG.md index 04bb26f6..461e9b3a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,4 +8,4 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), For a full diff see [`1902cc2...master`][1902cc2...master]. -[1902cc2...master]: https://github.com/ergebnis/php-library-template/compare/1902cc2...master +[1902cc2...master]: https://github.com/Lctrs/php-library-skeleton/compare/1902cc2...master diff --git a/LICENSE.md b/LICENSE.md index 84f08bf1..e7d659a0 100644 --- a/LICENSE.md +++ b/LICENSE.md @@ -1,16 +1,21 @@ -# The MIT License (MIT) +MIT License -Copyright (c) 2017-2020 Andreas Möller +Copyright (c) 2020 Jérôme Parmentier -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated -documentation files (the _Software_), to deal in the Software without restriction, including without limitation the -rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit -persons to whom the Software is furnished to do so, subject to the following conditions: +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the -Software. +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. -THE SOFTWARE IS PROVIDED **AS IS**, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE -WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/Makefile b/Makefile index ffc4fe21..de17a0b5 100644 --- a/Makefile +++ b/Makefile @@ -6,16 +6,17 @@ it: coding-standards dependency-analysis static-code-analysis tests ## Runs the .PHONY: code-coverage code-coverage: vendor ## Collects coverage from running unit tests with phpunit/phpunit - vendor/bin/phpunit --configuration=test/Unit/phpunit.xml --coverage-text + vendor/bin/phpunit --configuration=test/Unit/phpunit.xml.dist --coverage-text .PHONY: coding-standards -coding-standards: vendor ## Fixes code style issues with friendsofphp/php-cs-fixer - mkdir -p .build/php-cs-fixer - vendor/bin/php-cs-fixer fix --config=.php_cs --diff --diff-format=udiff --verbose +coding-standards: vendor ## Fixes code style issues with doctrine/coding-standard + mkdir -p .build/php_codesniffer + vendor/bin/phpcbf + vendor/bin/phpcs .PHONY: dependency-analysis dependency-analysis: vendor ## Runs a dependency analysis with maglnet/composer-require-checker - docker run --interactive --rm --tty --volume ${PWD}:/app webfactory/composer-require-checker:2.0.0 + vendor/bin/composer-require-checker .PHONY: help help: ## Displays this list of targets with descriptions @@ -29,7 +30,7 @@ mutation-tests: vendor ## Runs mutation tests with infection/infection .PHONY: static-code-analysis static-code-analysis: vendor ## Runs a static code analysis with phpstan/phpstan and vimeo/psalm mkdir -p .build/phpstan - vendor/bin/phpstan analyse --configuration=phpstan.neon + vendor/bin/phpstan analyse --configuration=phpstan.neon.dist mkdir -p .build/psalm vendor/bin/psalm --config=psalm.xml --show-info=false --stats @@ -37,16 +38,16 @@ static-code-analysis: vendor ## Runs a static code analysis with phpstan/phpstan static-code-analysis-baseline: vendor ## Generates a baseline for static code analysis with phpstan/phpstan and vimeo/psalm mkdir -p .build/phpstan echo '' > phpstan-baseline.neon - vendor/bin/phpstan analyze --configuration=phpstan.neon --error-format=baselineNeon > phpstan-baseline.neon || true + vendor/bin/phpstan analyze --configuration=phpstan.neon.dist --error-format=baselineNeon > phpstan-baseline.neon || true mkdir -p .build/psalm vendor/bin/psalm --config=psalm.xml --set-baseline=psalm-baseline.xml .PHONY: tests tests: vendor ## Runs auto-review, unit, and integration tests with phpunit/phpunit mkdir -p .build/phpunit - vendor/bin/phpunit --configuration=test/AutoReview/phpunit.xml - vendor/bin/phpunit --configuration=test/Unit/phpunit.xml - vendor/bin/phpunit --configuration=test/Integration/phpunit.xml + vendor/bin/phpunit --configuration=test/AutoReview/phpunit.xml.dist + vendor/bin/phpunit --configuration=test/Unit/phpunit.xml.dist + vendor/bin/phpunit --configuration=test/Integration/phpunit.xml.dist vendor: composer.json composer.lock composer validate --strict diff --git a/README.md b/README.md index 6a7cfbea..975c74dc 100644 --- a/README.md +++ b/README.md @@ -1,13 +1,13 @@ # php-library-template -[![Continuous Deployment](https://github.com/ergebnis/php-library-template/workflows/Continuous%20Deployment/badge.svg)](https://github.com/ergebnis/php-library-template/actions) -[![Continuous Integration](https://github.com/ergebnis/php-library-template/workflows/Continuous%20Integration/badge.svg)](https://github.com/ergebnis/php-library-template/actions) +[![Continuous Deployment](https://github.com/Lctrs/php-library-skeleton/workflows/Continuous%20Deployment/badge.svg)](https://github.com/Lctrs/php-library-skeleton/actions) +[![Continuous Integration](https://github.com/Lctrs/php-library-skeleton/workflows/Continuous%20Integration/badge.svg)](https://github.com/Lctrs/php-library-skeleton/actions) -[![Code Coverage](https://codecov.io/gh/ergebnis/php-library-template/branch/master/graph/badge.svg)](https://codecov.io/gh/ergebnis/php-library-template) -[![Type Coverage](https://shepherd.dev/github/ergebnis/php-library-template/coverage.svg)](https://shepherd.dev/github/ergebnis/php-library-template) +[![Code Coverage](https://codecov.io/gh/Lctrs/php-library-skeleton/branch/master/graph/badge.svg)](https://codecov.io/gh/Lctrs/php-library-skeleton) +[![Type Coverage](https://shepherd.dev/github/Lctrs/php-library-skeleton/coverage.svg)](https://shepherd.dev/github/Lctrs/php-library-skeleton) -[![Latest Stable Version](https://poser.pugx.org/ergebnis/php-library-template/v/stable)](https://packagist.org/packages/ergebnis/php-library-template) -[![Total Downloads](https://poser.pugx.org/ergebnis/php-library-template/downloads)](https://packagist.org/packages/ergebnis/php-library-template) +[![Latest Stable Version](https://img.shields.io/packagist/v/Lctrs/php-library-skeleton?style=flat-square)](https://packagist.org/packages/Lctrs/php-library-skeleton) +[![Total Downloads](https://img.shields.io/packagist/dt/Lctrs/php-library-skeleton?style=flat-square)](https://packagist.org/packages/Lctrs/php-library-skeleton) ## Installation @@ -16,7 +16,7 @@ Run ``` -$ composer require ergebnis/php-library-template +$ composer require lctrs/php-library-skeleton ``` ## Usage @@ -31,10 +31,6 @@ Please have a look at [`CHANGELOG.md`](CHANGELOG.md). Please have a look at [`CONTRIBUTING.md`](.github/CONTRIBUTING.md). -## Code of Conduct - -Please have a look at [`CODE_OF_CONDUCT.md`](.github/CODE_OF_CONDUCT.md). - ## License This package is licensed using the MIT License. diff --git a/composer.json b/composer.json index abad8c0e..df36ba02 100644 --- a/composer.json +++ b/composer.json @@ -1,54 +1,49 @@ { - "name": "ergebnis/php-library-template", + "name": "lctrs/php-library-skeleton", "type": "library", "description": "Provides a GitHub repository template for a PHP library, using GitHub actions.", - "homepage": "https://github.com/ergebnis/php-library-template", + "homepage": "https://github.com/Lctrs/php-library-skeleton", "license": "MIT", "authors": [ { - "name": "Andreas Möller", - "email": "am@localheinz.com" + "name": "Jérôme Parmentier", + "email": "jerome@prmntr.me" } ], "require": { - "php": "^7.2" + "php": "^7.2.9" }, "require-dev": { + "doctrine/coding-standard": "^7.0.2", "ergebnis/composer-normalize": "^2.2.2", - "ergebnis/license": "~0.1.0", - "ergebnis/php-cs-fixer-config": "^2.0.0", - "ergebnis/phpstan-rules": "~0.14.2", - "ergebnis/test-util": "~0.9.1", - "infection/infection": "~0.15.0", - "jangregor/phpstan-prophecy": "~0.6.0", + "ergebnis/test-util": "^0.9.1", + "infection/infection": "^0.15.0", + "maglnet/composer-require-checker": "^2.1.0", "phpstan/extension-installer": "^1.0.3", - "phpstan/phpstan": "~0.12.7", - "phpstan/phpstan-deprecation-rules": "~0.12.2", - "phpstan/phpstan-phpunit": "~0.12.6", - "phpstan/phpstan-strict-rules": "~0.12.2", + "phpstan/phpstan": "^0.12.7", + "phpstan/phpstan-deprecation-rules": "^0.12.2", + "phpstan/phpstan-phpunit": "^0.12.6", + "phpstan/phpstan-strict-rules": "^0.12.2", "phpunit/phpunit": "^8.5.2", - "psalm/plugin-phpunit": "~0.8.1", + "psalm/plugin-phpunit": "^0.8.1", "vimeo/psalm": "^3.8.3" }, "config": { - "platform": { - "php": "7.2.25" - }, "preferred-install": "dist", "sort-packages": true }, "autoload": { "psr-4": { - "Ergebnis\\Library\\": "src/" + "Lctrs\\Library\\": "src/" } }, "autoload-dev": { "psr-4": { - "Ergebnis\\Library\\Test\\": "test/" + "Lctrs\\Library\\Test\\": "test/" } }, "support": { - "issues": "https://github.com/ergebnis/php-library-template/issues", - "source": "https://github.com/ergebnis/php-library-template" + "issues": "https://github.com/Lctrs/php-library-skeleton/issues", + "source": "https://github.com/Lctrs/php-library-skeleton" } } diff --git a/composer.lock b/composer.lock index f763cfc8..ad112fa2 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "fe35ec664f1207012f578c2336527fc8", + "content-hash": "f0d8aa236e7b545da5ff23375b6caf0f", "packages": [], "packages-dev": [ { @@ -249,36 +249,36 @@ "time": "2019-11-06T16:40:04+00:00" }, { - "name": "doctrine/annotations", - "version": "v1.8.0", + "name": "dealerdirect/phpcodesniffer-composer-installer", + "version": "v0.5.0", "source": { "type": "git", - "url": "https://github.com/doctrine/annotations.git", - "reference": "904dca4eb10715b92569fbcd79e201d5c349b6bc" + "url": "https://github.com/Dealerdirect/phpcodesniffer-composer-installer.git", + "reference": "e749410375ff6fb7a040a68878c656c2e610b132" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/annotations/zipball/904dca4eb10715b92569fbcd79e201d5c349b6bc", - "reference": "904dca4eb10715b92569fbcd79e201d5c349b6bc", + "url": "https://api.github.com/repos/Dealerdirect/phpcodesniffer-composer-installer/zipball/e749410375ff6fb7a040a68878c656c2e610b132", + "reference": "e749410375ff6fb7a040a68878c656c2e610b132", "shasum": "" }, "require": { - "doctrine/lexer": "1.*", - "php": "^7.1" + "composer-plugin-api": "^1.0", + "php": "^5.3|^7", + "squizlabs/php_codesniffer": "^2|^3" }, "require-dev": { - "doctrine/cache": "1.*", - "phpunit/phpunit": "^7.5" + "composer/composer": "*", + "phpcompatibility/php-compatibility": "^9.0", + "sensiolabs/security-checker": "^4.1.0" }, - "type": "library", + "type": "composer-plugin", "extra": { - "branch-alias": { - "dev-master": "1.7.x-dev" - } + "class": "Dealerdirect\\Composer\\Plugin\\Installers\\PHPCodeSniffer\\Plugin" }, "autoload": { "psr-4": { - "Doctrine\\Common\\Annotations\\": "lib/Doctrine/Common/Annotations" + "Dealerdirect\\Composer\\Plugin\\Installers\\PHPCodeSniffer\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", @@ -287,70 +287,62 @@ ], "authors": [ { - "name": "Guilherme Blanco", - "email": "guilhermeblanco@gmail.com" - }, - { - "name": "Roman Borschel", - "email": "roman@code-factory.org" - }, - { - "name": "Benjamin Eberlei", - "email": "kontakt@beberlei.de" - }, - { - "name": "Jonathan Wage", - "email": "jonwage@gmail.com" - }, - { - "name": "Johannes Schmitt", - "email": "schmittjoh@gmail.com" + "name": "Franck Nijhof", + "email": "franck.nijhof@dealerdirect.com", + "homepage": "http://www.frenck.nl", + "role": "Developer / IT Manager" } ], - "description": "Docblock Annotations Parser", - "homepage": "http://www.doctrine-project.org", + "description": "PHP_CodeSniffer Standards Composer Installer Plugin", + "homepage": "http://www.dealerdirect.com", "keywords": [ - "annotations", - "docblock", - "parser" - ], - "time": "2019-10-01T18:55:10+00:00" + "PHPCodeSniffer", + "PHP_CodeSniffer", + "code quality", + "codesniffer", + "composer", + "installer", + "phpcs", + "plugin", + "qa", + "quality", + "standard", + "standards", + "style guide", + "stylecheck", + "tests" + ], + "time": "2018-10-26T13:21:45+00:00" }, { - "name": "doctrine/instantiator", - "version": "1.3.0", + "name": "doctrine/coding-standard", + "version": "7.0.2", "source": { "type": "git", - "url": "https://github.com/doctrine/instantiator.git", - "reference": "ae466f726242e637cebdd526a7d991b9433bacf1" + "url": "https://github.com/doctrine/coding-standard.git", + "reference": "d8a60ec4da68025c42795b714f66e277dd3e11de" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/instantiator/zipball/ae466f726242e637cebdd526a7d991b9433bacf1", - "reference": "ae466f726242e637cebdd526a7d991b9433bacf1", + "url": "https://api.github.com/repos/doctrine/coding-standard/zipball/d8a60ec4da68025c42795b714f66e277dd3e11de", + "reference": "d8a60ec4da68025c42795b714f66e277dd3e11de", "shasum": "" }, "require": { - "php": "^7.1" - }, - "require-dev": { - "doctrine/coding-standard": "^6.0", - "ext-pdo": "*", - "ext-phar": "*", - "phpbench/phpbench": "^0.13", - "phpstan/phpstan-phpunit": "^0.11", - "phpstan/phpstan-shim": "^0.11", - "phpunit/phpunit": "^7.0" + "dealerdirect/phpcodesniffer-composer-installer": "^0.5.0", + "php": "^7.2", + "slevomat/coding-standard": "^6.0", + "squizlabs/php_codesniffer": "^3.5.3" }, - "type": "library", + "type": "phpcodesniffer-standard", "extra": { "branch-alias": { - "dev-master": "1.2.x-dev" + "dev-master": "7.0.x-dev" } }, "autoload": { "psr-4": { - "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/" + "Doctrine\\Sniffs\\": "lib/Doctrine/Sniffs" } }, "notification-url": "https://packagist.org/downloads/", @@ -359,40 +351,55 @@ ], "authors": [ { - "name": "Marco Pivetta", - "email": "ocramius@gmail.com", - "homepage": "http://ocramius.github.com/" + "name": "Benjamin Eberlei", + "email": "kontakt@beberlei.de" + }, + { + "name": "Steve Müller", + "email": "st.mueller@dzh-online.de" } ], - "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors", - "homepage": "https://www.doctrine-project.org/projects/instantiator.html", + "description": "The Doctrine Coding Standard is a set of PHPCS rules applied to all Doctrine projects.", + "homepage": "https://www.doctrine-project.org/projects/coding-standard.html", "keywords": [ - "constructor", - "instantiate" - ], - "time": "2019-10-21T16:45:58+00:00" + "checks", + "code", + "coding", + "cs", + "doctrine", + "rules", + "sniffer", + "sniffs", + "standard", + "style" + ], + "time": "2019-12-11T07:59:21+00:00" }, { - "name": "doctrine/lexer", - "version": "1.2.0", + "name": "doctrine/instantiator", + "version": "1.3.0", "source": { "type": "git", - "url": "https://github.com/doctrine/lexer.git", - "reference": "5242d66dbeb21a30dd8a3e66bf7a73b66e05e1f6" + "url": "https://github.com/doctrine/instantiator.git", + "reference": "ae466f726242e637cebdd526a7d991b9433bacf1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/lexer/zipball/5242d66dbeb21a30dd8a3e66bf7a73b66e05e1f6", - "reference": "5242d66dbeb21a30dd8a3e66bf7a73b66e05e1f6", + "url": "https://api.github.com/repos/doctrine/instantiator/zipball/ae466f726242e637cebdd526a7d991b9433bacf1", + "reference": "ae466f726242e637cebdd526a7d991b9433bacf1", "shasum": "" }, "require": { - "php": "^7.2" + "php": "^7.1" }, "require-dev": { "doctrine/coding-standard": "^6.0", - "phpstan/phpstan": "^0.11.8", - "phpunit/phpunit": "^8.2" + "ext-pdo": "*", + "ext-phar": "*", + "phpbench/phpbench": "^0.13", + "phpstan/phpstan-phpunit": "^0.11", + "phpstan/phpstan-shim": "^0.11", + "phpunit/phpunit": "^7.0" }, "type": "library", "extra": { @@ -402,7 +409,7 @@ }, "autoload": { "psr-4": { - "Doctrine\\Common\\Lexer\\": "lib/Doctrine/Common/Lexer" + "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/" } }, "notification-url": "https://packagist.org/downloads/", @@ -411,28 +418,18 @@ ], "authors": [ { - "name": "Guilherme Blanco", - "email": "guilhermeblanco@gmail.com" - }, - { - "name": "Roman Borschel", - "email": "roman@code-factory.org" - }, - { - "name": "Johannes Schmitt", - "email": "schmittjoh@gmail.com" + "name": "Marco Pivetta", + "email": "ocramius@gmail.com", + "homepage": "http://ocramius.github.com/" } ], - "description": "PHP Doctrine Lexer parser library that can be used in Top-Down, Recursive Descent Parsers.", - "homepage": "https://www.doctrine-project.org/projects/lexer.html", + "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors", + "homepage": "https://www.doctrine-project.org/projects/instantiator.html", "keywords": [ - "annotations", - "docblock", - "lexer", - "parser", - "php" + "constructor", + "instantiate" ], - "time": "2019-10-30T14:39:59+00:00" + "time": "2019-10-21T16:45:58+00:00" }, { "name": "ergebnis/classy", @@ -668,184 +665,6 @@ ], "time": "2019-12-19T14:42:54+00:00" }, - { - "name": "ergebnis/license", - "version": "0.1.0", - "source": { - "type": "git", - "url": "https://github.com/ergebnis/license.git", - "reference": "ca94bcaabcbd56e663899fc4510e9cfdd8c6329c" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/ergebnis/license/zipball/ca94bcaabcbd56e663899fc4510e9cfdd8c6329c", - "reference": "ca94bcaabcbd56e663899fc4510e9cfdd8c6329c", - "shasum": "" - }, - "require": { - "ext-filter": "*", - "php": "^7.1" - }, - "require-dev": { - "ergebnis/composer-normalize": "^2.2.2", - "ergebnis/php-cs-fixer-config": "~1.1.3", - "ergebnis/phpstan-rules": "~0.14.2", - "ergebnis/test-util": "~0.9.1", - "infection/infection": "~0.13.6", - "jangregor/phpstan-prophecy": "~0.6.0", - "phpstan/extension-installer": "^1.0.3", - "phpstan/phpstan": "~0.12.5", - "phpstan/phpstan-deprecation-rules": "~0.12.2", - "phpstan/phpstan-phpunit": "~0.12.6", - "phpstan/phpstan-strict-rules": "~0.12.1", - "phpunit/phpunit": "^7.5.20", - "psalm/plugin-phpunit": "~0.8.1", - "symfony/filesystem": "^4.4.0", - "vimeo/psalm": "^3.8.3" - }, - "type": "library", - "autoload": { - "psr-4": { - "Ergebnis\\License\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Andreas Möller", - "email": "am@localheinz.com" - } - ], - "description": "Provides an abstraction for a license.", - "homepage": "https://github.com/ergebnis/license", - "keywords": [ - "license" - ], - "time": "2020-01-19T13:40:34+00:00" - }, - { - "name": "ergebnis/php-cs-fixer-config", - "version": "2.0.0", - "source": { - "type": "git", - "url": "https://github.com/ergebnis/php-cs-fixer-config.git", - "reference": "42453e7d7d95c045fd036dede4274069eb83d32c" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/ergebnis/php-cs-fixer-config/zipball/42453e7d7d95c045fd036dede4274069eb83d32c", - "reference": "42453e7d7d95c045fd036dede4274069eb83d32c", - "shasum": "" - }, - "require": { - "ext-filter": "*", - "friendsofphp/php-cs-fixer": "~2.16.0", - "php": "^7.1" - }, - "require-dev": { - "ergebnis/composer-normalize": "^2.2.2", - "ergebnis/license": "~0.1.0", - "ergebnis/phpstan-rules": "~0.14.2", - "ergebnis/test-util": "~0.9.1", - "infection/infection": "~0.13.6", - "jangregor/phpstan-prophecy": "~0.6.0", - "phpstan/extension-installer": "^1.0.3", - "phpstan/phpstan": "~0.12.5", - "phpstan/phpstan-deprecation-rules": "~0.12.2", - "phpstan/phpstan-phpunit": "~0.12.6", - "phpstan/phpstan-strict-rules": "~0.12.1", - "phpunit/phpunit": "^7.5.20", - "psalm/plugin-phpunit": "~0.8.1", - "symfony/filesystem": "^4.4.0", - "vimeo/psalm": "^3.8.3" - }, - "type": "library", - "autoload": { - "psr-4": { - "Ergebnis\\PhpCsFixer\\Config\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Andreas Möller", - "email": "am@localheinz.com" - } - ], - "description": "Provides a configuration factory and multiple rule sets for friendsofphp/php-cs-fixer.", - "homepage": "https://github.com/ergebnis/php-cs-fixer-config", - "time": "2020-01-20T08:00:08+00:00" - }, - { - "name": "ergebnis/phpstan-rules", - "version": "0.14.2", - "source": { - "type": "git", - "url": "https://github.com/ergebnis/phpstan-rules.git", - "reference": "e6cf7e74b17e29a54dd85ed1d18f52ec113eaa8e" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/ergebnis/phpstan-rules/zipball/e6cf7e74b17e29a54dd85ed1d18f52ec113eaa8e", - "reference": "e6cf7e74b17e29a54dd85ed1d18f52ec113eaa8e", - "shasum": "" - }, - "require": { - "ext-mbstring": "*", - "nikic/php-parser": "^4.2.3", - "php": "^7.1", - "phpstan/phpstan": "~0.11.15 || ~0.12.0" - }, - "require-dev": { - "ergebnis/composer-normalize": "^1.3.1", - "ergebnis/php-cs-fixer-config": "~1.1.2", - "ergebnis/test-util": "~0.9.1", - "infection/infection": "~0.13.6", - "nette/di": "^3.0.1", - "phpstan/phpstan-deprecation-rules": "~0.11.2", - "phpstan/phpstan-strict-rules": "~0.11.1", - "phpunit/phpunit": "^7.5.18", - "psr/container": "^1.0.0", - "zendframework/zend-servicemanager": "^2.0.0" - }, - "type": "phpstan-extension", - "extra": { - "phpstan": { - "includes": [ - "rules.neon" - ] - } - }, - "autoload": { - "psr-4": { - "Ergebnis\\PHPStan\\Rules\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Andreas Möller", - "email": "am@localheinz.com" - } - ], - "description": "Provides additional rules for phpstan/phpstan.", - "homepage": "https://github.com/ergebnis/phpstan-rules", - "keywords": [ - "PHPStan", - "phpstan-extreme-rules", - "phpstan-rules" - ], - "time": "2019-12-19T10:25:17+00:00" - }, { "name": "ergebnis/test-util", "version": "0.9.1", @@ -990,95 +809,6 @@ ], "time": "2019-06-23T21:03:50+00:00" }, - { - "name": "friendsofphp/php-cs-fixer", - "version": "v2.16.1", - "source": { - "type": "git", - "url": "https://github.com/FriendsOfPHP/PHP-CS-Fixer.git", - "reference": "c8afb599858876e95e8ebfcd97812d383fa23f02" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/FriendsOfPHP/PHP-CS-Fixer/zipball/c8afb599858876e95e8ebfcd97812d383fa23f02", - "reference": "c8afb599858876e95e8ebfcd97812d383fa23f02", - "shasum": "" - }, - "require": { - "composer/semver": "^1.4", - "composer/xdebug-handler": "^1.2", - "doctrine/annotations": "^1.2", - "ext-json": "*", - "ext-tokenizer": "*", - "php": "^5.6 || ^7.0", - "php-cs-fixer/diff": "^1.3", - "symfony/console": "^3.4.17 || ^4.1.6 || ^5.0", - "symfony/event-dispatcher": "^3.0 || ^4.0 || ^5.0", - "symfony/filesystem": "^3.0 || ^4.0 || ^5.0", - "symfony/finder": "^3.0 || ^4.0 || ^5.0", - "symfony/options-resolver": "^3.0 || ^4.0 || ^5.0", - "symfony/polyfill-php70": "^1.0", - "symfony/polyfill-php72": "^1.4", - "symfony/process": "^3.0 || ^4.0 || ^5.0", - "symfony/stopwatch": "^3.0 || ^4.0 || ^5.0" - }, - "require-dev": { - "johnkary/phpunit-speedtrap": "^1.1 || ^2.0 || ^3.0", - "justinrainbow/json-schema": "^5.0", - "keradus/cli-executor": "^1.2", - "mikey179/vfsstream": "^1.6", - "php-coveralls/php-coveralls": "^2.1", - "php-cs-fixer/accessible-object": "^1.0", - "php-cs-fixer/phpunit-constraint-isidenticalstring": "^1.1", - "php-cs-fixer/phpunit-constraint-xmlmatchesxsd": "^1.1", - "phpunit/phpunit": "^5.7.27 || ^6.5.14 || ^7.1", - "phpunitgoodpractices/traits": "^1.8", - "symfony/phpunit-bridge": "^4.3 || ^5.0", - "symfony/yaml": "^3.0 || ^4.0 || ^5.0" - }, - "suggest": { - "ext-mbstring": "For handling non-UTF8 characters in cache signature.", - "php-cs-fixer/phpunit-constraint-isidenticalstring": "For IsIdenticalString constraint.", - "php-cs-fixer/phpunit-constraint-xmlmatchesxsd": "For XmlMatchesXsd constraint.", - "symfony/polyfill-mbstring": "When enabling `ext-mbstring` is not possible." - }, - "bin": [ - "php-cs-fixer" - ], - "type": "application", - "autoload": { - "psr-4": { - "PhpCsFixer\\": "src/" - }, - "classmap": [ - "tests/Test/AbstractFixerTestCase.php", - "tests/Test/AbstractIntegrationCaseFactory.php", - "tests/Test/AbstractIntegrationTestCase.php", - "tests/Test/Assert/AssertTokensTrait.php", - "tests/Test/IntegrationCase.php", - "tests/Test/IntegrationCaseFactory.php", - "tests/Test/IntegrationCaseFactoryInterface.php", - "tests/Test/InternalIntegrationCaseFactory.php", - "tests/TestCase.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Dariusz Rumiński", - "email": "dariusz.ruminski@gmail.com" - } - ], - "description": "A tool to automatically fix PHP code style", - "time": "2019-11-25T22:10:32+00:00" - }, { "name": "fzaninotto/faker", "version": "v1.9.1", @@ -1227,76 +957,17 @@ "time": "2019-11-29T06:37:53+00:00" }, { - "name": "jangregor/phpstan-prophecy", - "version": "0.6.0", + "name": "justinrainbow/json-schema", + "version": "5.2.9", "source": { "type": "git", - "url": "https://github.com/Jan0707/phpstan-prophecy.git", - "reference": "542c8ed7228af772562fb0f370d15ec73e3bdecf" + "url": "https://github.com/justinrainbow/json-schema.git", + "reference": "44c6787311242a979fa15c704327c20e7221a0e4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Jan0707/phpstan-prophecy/zipball/542c8ed7228af772562fb0f370d15ec73e3bdecf", - "reference": "542c8ed7228af772562fb0f370d15ec73e3bdecf", - "shasum": "" - }, - "require": { - "php": "^7.1", - "phpstan/phpstan": "^0.12.0" - }, - "conflict": { - "phpspec/prophecy": "<1.7,>=2.0", - "phpunit/phpunit": "<6.0,>=9.0" - }, - "require-dev": { - "ergebnis/composer-normalize": "^2.1.1", - "ergebnis/php-cs-fixer-config": "~1.1.2", - "phpspec/prophecy": "^1.7", - "phpunit/phpunit": "^6.0 || ^7.0" - }, - "type": "phpstan-extension", - "extra": { - "phpstan": { - "includes": [ - "src/extension.neon" - ] - }, - "violinist": { - "allow_updates_beyond_constraint": 0, - "one_pull_request_per_package": 1, - "update_with_dependencies": 1 - } - }, - "autoload": { - "psr-4": { - "JanGregor\\Prophecy\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Jan Gregor Emge-Triebel", - "email": "jan@jangregor.me" - } - ], - "description": "Provides a phpstan/phpstan extension for phpspec/prophecy", - "time": "2019-12-27T23:57:21+00:00" - }, - { - "name": "justinrainbow/json-schema", - "version": "5.2.9", - "source": { - "type": "git", - "url": "https://github.com/justinrainbow/json-schema.git", - "reference": "44c6787311242a979fa15c704327c20e7221a0e4" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/justinrainbow/json-schema/zipball/44c6787311242a979fa15c704327c20e7221a0e4", - "reference": "44c6787311242a979fa15c704327c20e7221a0e4", + "url": "https://api.github.com/repos/justinrainbow/json-schema/zipball/44c6787311242a979fa15c704327c20e7221a0e4", + "reference": "44c6787311242a979fa15c704327c20e7221a0e4", "shasum": "" }, "require": { @@ -1402,18 +1073,90 @@ ], "time": "2019-12-17T07:42:37+00:00" }, + { + "name": "maglnet/composer-require-checker", + "version": "2.1.0", + "source": { + "type": "git", + "url": "https://github.com/maglnet/ComposerRequireChecker.git", + "reference": "0c66698d487fcb5c66cf07108e2180c818fb2e72" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/maglnet/ComposerRequireChecker/zipball/0c66698d487fcb5c66cf07108e2180c818fb2e72", + "reference": "0c66698d487fcb5c66cf07108e2180c818fb2e72", + "shasum": "" + }, + "require": { + "ext-json": "*", + "ext-phar": "*", + "nikic/php-parser": "^4.3", + "ocramius/package-versions": "^1.4.2", + "php": "^7.2", + "symfony/console": "^5.0", + "webmozart/glob": "^4.1" + }, + "require-dev": { + "ext-zend-opcache": "*", + "mikey179/vfsstream": "^1.6", + "phpstan/phpstan": "^0.12", + "phpunit/phpunit": "^8.4.3" + }, + "bin": [ + "bin/composer-require-checker" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.1-dev" + } + }, + "autoload": { + "psr-4": { + "ComposerRequireChecker\\": "src/ComposerRequireChecker" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Marco Pivetta", + "email": "ocramius@gmail.com", + "homepage": "http://ocramius.github.io/" + }, + { + "name": "Matthias Glaub", + "email": "magl@magl.net", + "homepage": "http://magl.net" + } + ], + "description": "CLI tool to analyze composer dependencies and verify that no unknown symbols are used in the sources of a package", + "homepage": "https://github.com/maglnet/ComposerRequireChecker", + "keywords": [ + "analysis", + "cli", + "composer", + "dependency", + "imports", + "require", + "requirements" + ], + "time": "2019-12-28T13:49:20+00:00" + }, { "name": "myclabs/deep-copy", - "version": "1.9.4", + "version": "1.9.5", "source": { "type": "git", "url": "https://github.com/myclabs/DeepCopy.git", - "reference": "579bb7356d91f9456ccd505f24ca8b667966a0a7" + "reference": "b2c28789e80a97badd14145fda39b545d83ca3ef" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/579bb7356d91f9456ccd505f24ca8b667966a0a7", - "reference": "579bb7356d91f9456ccd505f24ca8b667966a0a7", + "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/b2c28789e80a97badd14145fda39b545d83ca3ef", + "reference": "b2c28789e80a97badd14145fda39b545d83ca3ef", "shasum": "" }, "require": { @@ -1448,7 +1191,7 @@ "object", "object graph" ], - "time": "2019-12-15T19:12:40+00:00" + "time": "2020-01-17T21:11:47+00:00" }, { "name": "netresearch/jsonmapper", @@ -1647,51 +1390,6 @@ ], "time": "2019-03-29T20:06:56+00:00" }, - { - "name": "paragonie/random_compat", - "version": "v9.99.99", - "source": { - "type": "git", - "url": "https://github.com/paragonie/random_compat.git", - "reference": "84b4dfb120c6f9b4ff7b3685f9b8f1aa365a0c95" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/paragonie/random_compat/zipball/84b4dfb120c6f9b4ff7b3685f9b8f1aa365a0c95", - "reference": "84b4dfb120c6f9b4ff7b3685f9b8f1aa365a0c95", - "shasum": "" - }, - "require": { - "php": "^7" - }, - "require-dev": { - "phpunit/phpunit": "4.*|5.*", - "vimeo/psalm": "^1" - }, - "suggest": { - "ext-libsodium": "Provides a modern crypto API that can be used to generate random bytes." - }, - "type": "library", - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Paragon Initiative Enterprises", - "email": "security@paragonie.com", - "homepage": "https://paragonie.com" - } - ], - "description": "PHP 5.x polyfill for random_bytes() and random_int() from PHP 7", - "keywords": [ - "csprng", - "polyfill", - "pseudorandom", - "random" - ], - "time": "2018-07-02T15:55:56+00:00" - }, { "name": "phar-io/manifest", "version": "1.0.3", @@ -1794,57 +1492,6 @@ "description": "Library for handling version information and constraints", "time": "2018-07-08T19:19:57+00:00" }, - { - "name": "php-cs-fixer/diff", - "version": "v1.3.0", - "source": { - "type": "git", - "url": "https://github.com/PHP-CS-Fixer/diff.git", - "reference": "78bb099e9c16361126c86ce82ec4405ebab8e756" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/PHP-CS-Fixer/diff/zipball/78bb099e9c16361126c86ce82ec4405ebab8e756", - "reference": "78bb099e9c16361126c86ce82ec4405ebab8e756", - "shasum": "" - }, - "require": { - "php": "^5.6 || ^7.0" - }, - "require-dev": { - "phpunit/phpunit": "^5.7.23 || ^6.4.3", - "symfony/process": "^3.3" - }, - "type": "library", - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Kore Nordmann", - "email": "mail@kore-nordmann.de" - }, - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - }, - { - "name": "SpacePossum" - } - ], - "description": "sebastian/diff v2 backport support for PHP5.6", - "homepage": "https://github.com/PHP-CS-Fixer", - "keywords": [ - "diff" - ], - "time": "2018-02-15T16:58:55+00:00" - }, { "name": "phpdocumentor/reflection-common", "version": "2.0.0", @@ -1998,24 +1645,24 @@ }, { "name": "phpspec/prophecy", - "version": "1.10.1", + "version": "v1.10.2", "source": { "type": "git", "url": "https://github.com/phpspec/prophecy.git", - "reference": "cbe1df668b3fe136bcc909126a0f529a78d4cbbc" + "reference": "b4400efc9d206e83138e2bb97ed7f5b14b831cd9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpspec/prophecy/zipball/cbe1df668b3fe136bcc909126a0f529a78d4cbbc", - "reference": "cbe1df668b3fe136bcc909126a0f529a78d4cbbc", + "url": "https://api.github.com/repos/phpspec/prophecy/zipball/b4400efc9d206e83138e2bb97ed7f5b14b831cd9", + "reference": "b4400efc9d206e83138e2bb97ed7f5b14b831cd9", "shasum": "" }, "require": { "doctrine/instantiator": "^1.0.2", "php": "^5.3|^7.0", "phpdocumentor/reflection-docblock": "^2.0|^3.0.2|^4.0|^5.0", - "sebastian/comparator": "^1.2.3|^2.0|^3.0", - "sebastian/recursion-context": "^1.0|^2.0|^3.0" + "sebastian/comparator": "^1.2.3|^2.0|^3.0|^4.0", + "sebastian/recursion-context": "^1.0|^2.0|^3.0|^4.0" }, "require-dev": { "phpspec/phpspec": "^2.5 || ^3.2", @@ -2057,7 +1704,7 @@ "spy", "stub" ], - "time": "2019-12-22T21:05:45+00:00" + "time": "2020-01-20T15:57:02+00:00" }, { "name": "phpstan/extension-installer", @@ -2103,6 +1750,54 @@ "description": "Composer plugin for automatic installation of PHPStan extensions", "time": "2019-10-18T17:09:48+00:00" }, + { + "name": "phpstan/phpdoc-parser", + "version": "0.4.2", + "source": { + "type": "git", + "url": "https://github.com/phpstan/phpdoc-parser.git", + "reference": "a6d13524641bb780efc821d9e0a1e1bfb23cbd0e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/a6d13524641bb780efc821d9e0a1e1bfb23cbd0e", + "reference": "a6d13524641bb780efc821d9e0a1e1bfb23cbd0e", + "shasum": "" + }, + "require": { + "php": "~7.1" + }, + "require-dev": { + "consistence/coding-standard": "^3.5", + "jakub-onderka/php-parallel-lint": "^0.9.2", + "phing/phing": "^2.16.0", + "phpstan/extension-installer": "^1.0", + "phpstan/phpstan": "^0.12", + "phpstan/phpstan-strict-rules": "^0.12", + "phpunit/phpunit": "^6.3", + "slevomat/coding-standard": "^4.7.2", + "symfony/process": "^4.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "0.4-dev" + } + }, + "autoload": { + "psr-4": { + "PHPStan\\PhpDocParser\\": [ + "src/" + ] + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "PHPDoc parser with support for nullable, intersection and generic types", + "time": "2019-12-13T12:03:22+00:00" + }, { "name": "phpstan/phpstan", "version": "0.12.7", @@ -2791,52 +2486,6 @@ ], "time": "2017-02-14T16:28:37+00:00" }, - { - "name": "psr/event-dispatcher", - "version": "1.0.0", - "source": { - "type": "git", - "url": "https://github.com/php-fig/event-dispatcher.git", - "reference": "dbefd12671e8a14ec7f180cab83036ed26714bb0" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-fig/event-dispatcher/zipball/dbefd12671e8a14ec7f180cab83036ed26714bb0", - "reference": "dbefd12671e8a14ec7f180cab83036ed26714bb0", - "shasum": "" - }, - "require": { - "php": ">=7.2.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "autoload": { - "psr-4": { - "Psr\\EventDispatcher\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" - } - ], - "description": "Standard interfaces for event handling.", - "keywords": [ - "events", - "psr", - "psr-14" - ], - "time": "2019-01-08T18:20:26+00:00" - }, { "name": "psr/log", "version": "1.1.2", @@ -3549,182 +3198,154 @@ "time": "2019-10-24T14:27:39+00:00" }, { - "name": "symfony/console", - "version": "v5.0.2", + "name": "slevomat/coding-standard", + "version": "6.1.0", "source": { "type": "git", - "url": "https://github.com/symfony/console.git", - "reference": "fe6e3cd889ca64172d7a742a2eb058541404ef47" + "url": "https://github.com/slevomat/coding-standard.git", + "reference": "2f5e0101c2a4df5559a7a2b1a10fc3cfa134ca03" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/fe6e3cd889ca64172d7a742a2eb058541404ef47", - "reference": "fe6e3cd889ca64172d7a742a2eb058541404ef47", + "url": "https://api.github.com/repos/slevomat/coding-standard/zipball/2f5e0101c2a4df5559a7a2b1a10fc3cfa134ca03", + "reference": "2f5e0101c2a4df5559a7a2b1a10fc3cfa134ca03", "shasum": "" }, "require": { - "php": "^7.2.5", - "symfony/polyfill-mbstring": "~1.0", - "symfony/polyfill-php73": "^1.8", - "symfony/service-contracts": "^1.1|^2" - }, - "conflict": { - "symfony/dependency-injection": "<4.4", - "symfony/event-dispatcher": "<4.4", - "symfony/lock": "<4.4", - "symfony/process": "<4.4" - }, - "provide": { - "psr/log-implementation": "1.0" + "php": "^7.1", + "phpstan/phpdoc-parser": "0.3.5 - 0.4.2", + "squizlabs/php_codesniffer": "^3.5.3" }, "require-dev": { - "psr/log": "~1.0", - "symfony/config": "^4.4|^5.0", - "symfony/dependency-injection": "^4.4|^5.0", - "symfony/event-dispatcher": "^4.4|^5.0", - "symfony/lock": "^4.4|^5.0", - "symfony/process": "^4.4|^5.0", - "symfony/var-dumper": "^4.4|^5.0" - }, - "suggest": { - "psr/log": "For using the console logger", - "symfony/event-dispatcher": "", - "symfony/lock": "", - "symfony/process": "" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.0-dev" - } - }, + "dealerdirect/phpcodesniffer-composer-installer": "0.5.0", + "jakub-onderka/php-parallel-lint": "1.0.0", + "phing/phing": "2.16.2", + "phpstan/phpstan": "0.11.19|0.12.5", + "phpstan/phpstan-phpunit": "0.11.2|0.12.6", + "phpstan/phpstan-strict-rules": "0.11.1|0.12.1", + "phpunit/phpunit": "7.5.18|8.5.2" + }, + "type": "phpcodesniffer-standard", "autoload": { "psr-4": { - "Symfony\\Component\\Console\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] + "SlevomatCodingStandard\\": "SlevomatCodingStandard" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony Console Component", - "homepage": "https://symfony.com", - "time": "2019-12-17T13:20:22+00:00" + "description": "Slevomat Coding Standard for PHP_CodeSniffer complements Consistence Coding Standard by providing sniffs with additional checks.", + "time": "2020-01-19T07:51:51+00:00" }, { - "name": "symfony/event-dispatcher", - "version": "v5.0.2", + "name": "squizlabs/php_codesniffer", + "version": "3.5.3", "source": { "type": "git", - "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "7b738a51645e10f864cc25c24d232fb03f37b475" + "url": "https://github.com/squizlabs/PHP_CodeSniffer.git", + "reference": "557a1fc7ac702c66b0bbfe16ab3d55839ef724cb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/7b738a51645e10f864cc25c24d232fb03f37b475", - "reference": "7b738a51645e10f864cc25c24d232fb03f37b475", + "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/557a1fc7ac702c66b0bbfe16ab3d55839ef724cb", + "reference": "557a1fc7ac702c66b0bbfe16ab3d55839ef724cb", "shasum": "" }, "require": { - "php": "^7.2.5", - "symfony/event-dispatcher-contracts": "^2" - }, - "conflict": { - "symfony/dependency-injection": "<4.4" - }, - "provide": { - "psr/event-dispatcher-implementation": "1.0", - "symfony/event-dispatcher-implementation": "2.0" + "ext-simplexml": "*", + "ext-tokenizer": "*", + "ext-xmlwriter": "*", + "php": ">=5.4.0" }, "require-dev": { - "psr/log": "~1.0", - "symfony/config": "^4.4|^5.0", - "symfony/dependency-injection": "^4.4|^5.0", - "symfony/expression-language": "^4.4|^5.0", - "symfony/http-foundation": "^4.4|^5.0", - "symfony/service-contracts": "^1.1|^2", - "symfony/stopwatch": "^4.4|^5.0" - }, - "suggest": { - "symfony/dependency-injection": "", - "symfony/http-kernel": "" + "phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0" }, + "bin": [ + "bin/phpcs", + "bin/phpcbf" + ], "type": "library", "extra": { "branch-alias": { - "dev-master": "5.0-dev" + "dev-master": "3.x-dev" } }, - "autoload": { - "psr-4": { - "Symfony\\Component\\EventDispatcher\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" ], "authors": [ { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" + "name": "Greg Sherwood", + "role": "lead" } ], - "description": "Symfony EventDispatcher Component", - "homepage": "https://symfony.com", - "time": "2019-11-18T17:27:11+00:00" + "description": "PHP_CodeSniffer tokenizes PHP, JavaScript and CSS files and detects violations of a defined set of coding standards.", + "homepage": "https://github.com/squizlabs/PHP_CodeSniffer", + "keywords": [ + "phpcs", + "standards" + ], + "time": "2019-12-04T04:46:47+00:00" }, { - "name": "symfony/event-dispatcher-contracts", - "version": "v2.0.1", + "name": "symfony/console", + "version": "v5.0.3", "source": { "type": "git", - "url": "https://github.com/symfony/event-dispatcher-contracts.git", - "reference": "af23c2584d4577d54661c434446fb8fbed6025dd" + "url": "https://github.com/symfony/console.git", + "reference": "345ab6ecb456b5147ea3b3271d7f1f00aadfd257" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/af23c2584d4577d54661c434446fb8fbed6025dd", - "reference": "af23c2584d4577d54661c434446fb8fbed6025dd", + "url": "https://api.github.com/repos/symfony/console/zipball/345ab6ecb456b5147ea3b3271d7f1f00aadfd257", + "reference": "345ab6ecb456b5147ea3b3271d7f1f00aadfd257", "shasum": "" }, "require": { "php": "^7.2.5", - "psr/event-dispatcher": "^1" + "symfony/polyfill-mbstring": "~1.0", + "symfony/polyfill-php73": "^1.8", + "symfony/service-contracts": "^1.1|^2" + }, + "conflict": { + "symfony/dependency-injection": "<4.4", + "symfony/event-dispatcher": "<4.4", + "symfony/lock": "<4.4", + "symfony/process": "<4.4" + }, + "provide": { + "psr/log-implementation": "1.0" + }, + "require-dev": { + "psr/log": "~1.0", + "symfony/config": "^4.4|^5.0", + "symfony/dependency-injection": "^4.4|^5.0", + "symfony/event-dispatcher": "^4.4|^5.0", + "symfony/lock": "^4.4|^5.0", + "symfony/process": "^4.4|^5.0", + "symfony/var-dumper": "^4.4|^5.0" }, "suggest": { - "symfony/event-dispatcher-implementation": "" + "psr/log": "For using the console logger", + "symfony/event-dispatcher": "", + "symfony/lock": "", + "symfony/process": "" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0-dev" + "dev-master": "5.0-dev" } }, "autoload": { "psr-4": { - "Symfony\\Contracts\\EventDispatcher\\": "" - } + "Symfony\\Component\\Console\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -3732,38 +3353,30 @@ ], "authors": [ { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" + "name": "Fabien Potencier", + "email": "fabien@symfony.com" }, { "name": "Symfony Community", "homepage": "https://symfony.com/contributors" } ], - "description": "Generic abstractions related to dispatching event", + "description": "Symfony Console Component", "homepage": "https://symfony.com", - "keywords": [ - "abstractions", - "contracts", - "decoupling", - "interfaces", - "interoperability", - "standards" - ], - "time": "2019-11-18T17:27:11+00:00" + "time": "2020-01-19T11:13:19+00:00" }, { "name": "symfony/filesystem", - "version": "v5.0.2", + "version": "v5.0.3", "source": { "type": "git", "url": "https://github.com/symfony/filesystem.git", - "reference": "1d71f670bc5a07b9ccc97dc44f932177a322d4e6" + "reference": "3afadc0f57cd74f86379d073e694b0f2cda2a88c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/1d71f670bc5a07b9ccc97dc44f932177a322d4e6", - "reference": "1d71f670bc5a07b9ccc97dc44f932177a322d4e6", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/3afadc0f57cd74f86379d073e694b0f2cda2a88c", + "reference": "3afadc0f57cd74f86379d073e694b0f2cda2a88c", "shasum": "" }, "require": { @@ -3800,20 +3413,20 @@ ], "description": "Symfony Filesystem Component", "homepage": "https://symfony.com", - "time": "2019-11-26T23:25:11+00:00" + "time": "2020-01-21T08:40:24+00:00" }, { "name": "symfony/finder", - "version": "v5.0.2", + "version": "v5.0.3", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "17874dd8ab9a19422028ad56172fb294287a701b" + "reference": "4176e7cb846fe08f32518b7e0ed8462e2db8d9bb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/17874dd8ab9a19422028ad56172fb294287a701b", - "reference": "17874dd8ab9a19422028ad56172fb294287a701b", + "url": "https://api.github.com/repos/symfony/finder/zipball/4176e7cb846fe08f32518b7e0ed8462e2db8d9bb", + "reference": "4176e7cb846fe08f32518b7e0ed8462e2db8d9bb", "shasum": "" }, "require": { @@ -3849,61 +3462,7 @@ ], "description": "Symfony Finder Component", "homepage": "https://symfony.com", - "time": "2019-11-18T17:27:11+00:00" - }, - { - "name": "symfony/options-resolver", - "version": "v5.0.2", - "source": { - "type": "git", - "url": "https://github.com/symfony/options-resolver.git", - "reference": "1ad3d0ffc00cc1990e5c9c7bb6b81578ec3f5f68" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/options-resolver/zipball/1ad3d0ffc00cc1990e5c9c7bb6b81578ec3f5f68", - "reference": "1ad3d0ffc00cc1990e5c9c7bb6b81578ec3f5f68", - "shasum": "" - }, - "require": { - "php": "^7.2.5" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.0-dev" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Component\\OptionsResolver\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony OptionsResolver Component", - "homepage": "https://symfony.com", - "keywords": [ - "config", - "configuration", - "options" - ], - "time": "2019-11-18T17:27:11+00:00" + "time": "2020-01-04T14:08:26+00:00" }, { "name": "symfony/polyfill-ctype", @@ -4022,120 +3581,6 @@ ], "time": "2019-11-27T14:18:11+00:00" }, - { - "name": "symfony/polyfill-php70", - "version": "v1.13.1", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-php70.git", - "reference": "af23c7bb26a73b850840823662dda371484926c4" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php70/zipball/af23c7bb26a73b850840823662dda371484926c4", - "reference": "af23c7bb26a73b850840823662dda371484926c4", - "shasum": "" - }, - "require": { - "paragonie/random_compat": "~1.0|~2.0|~9.99", - "php": ">=5.3.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.13-dev" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Php70\\": "" - }, - "files": [ - "bootstrap.php" - ], - "classmap": [ - "Resources/stubs" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill backporting some PHP 7.0+ features to lower PHP versions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "polyfill", - "portable", - "shim" - ], - "time": "2019-11-27T13:56:44+00:00" - }, - { - "name": "symfony/polyfill-php72", - "version": "v1.13.1", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-php72.git", - "reference": "66fea50f6cb37a35eea048d75a7d99a45b586038" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/66fea50f6cb37a35eea048d75a7d99a45b586038", - "reference": "66fea50f6cb37a35eea048d75a7d99a45b586038", - "shasum": "" - }, - "require": { - "php": ">=5.3.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.13-dev" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Php72\\": "" - }, - "files": [ - "bootstrap.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill backporting some PHP 7.2+ features to lower PHP versions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "polyfill", - "portable", - "shim" - ], - "time": "2019-11-27T13:56:44+00:00" - }, { "name": "symfony/polyfill-php73", "version": "v1.13.1", @@ -4196,16 +3641,16 @@ }, { "name": "symfony/process", - "version": "v5.0.2", + "version": "v5.0.3", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "ea2dc31b59d63abd9bc2356ac72eb7b3f3469f0e" + "reference": "f9ffd870f5ac01abec7b2b5e15f904ca9400ecd1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/ea2dc31b59d63abd9bc2356ac72eb7b3f3469f0e", - "reference": "ea2dc31b59d63abd9bc2356ac72eb7b3f3469f0e", + "url": "https://api.github.com/repos/symfony/process/zipball/f9ffd870f5ac01abec7b2b5e15f904ca9400ecd1", + "reference": "f9ffd870f5ac01abec7b2b5e15f904ca9400ecd1", "shasum": "" }, "require": { @@ -4241,7 +3686,7 @@ ], "description": "Symfony Process Component", "homepage": "https://symfony.com", - "time": "2019-12-10T11:06:55+00:00" + "time": "2020-01-09T09:53:06+00:00" }, { "name": "symfony/service-contracts", @@ -4301,68 +3746,18 @@ ], "time": "2019-11-18T17:27:11+00:00" }, - { - "name": "symfony/stopwatch", - "version": "v5.0.2", - "source": { - "type": "git", - "url": "https://github.com/symfony/stopwatch.git", - "reference": "d410282956706e0b08681a5527447a8e6b6f421e" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/stopwatch/zipball/d410282956706e0b08681a5527447a8e6b6f421e", - "reference": "d410282956706e0b08681a5527447a8e6b6f421e", - "shasum": "" - }, - "require": { - "php": "^7.2.5", - "symfony/service-contracts": "^1.0|^2" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.0-dev" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Component\\Stopwatch\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony Stopwatch Component", - "homepage": "https://symfony.com", - "time": "2019-11-18T17:27:11+00:00" - }, { "name": "symfony/yaml", - "version": "v5.0.1", + "version": "v5.0.3", "source": { "type": "git", "url": "https://github.com/symfony/yaml.git", - "reference": "51b684480184fa767b97e28eaca67664e48dd3e9" + "reference": "69b44e3b8f90949aee2eb3aa9b86ceeb01cbf62a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/51b684480184fa767b97e28eaca67664e48dd3e9", - "reference": "51b684480184fa767b97e28eaca67664e48dd3e9", + "url": "https://api.github.com/repos/symfony/yaml/zipball/69b44e3b8f90949aee2eb3aa9b86ceeb01cbf62a", + "reference": "69b44e3b8f90949aee2eb3aa9b86ceeb01cbf62a", "shasum": "" }, "require": { @@ -4408,7 +3803,7 @@ ], "description": "Symfony Yaml Component", "homepage": "https://symfony.com", - "time": "2019-11-18T17:27:11+00:00" + "time": "2020-01-21T11:12:28+00:00" }, { "name": "thecodingmachine/safe", @@ -4824,10 +4219,7 @@ "prefer-stable": false, "prefer-lowest": false, "platform": { - "php": "^7.2" + "php": "^7.2.9" }, - "platform-dev": [], - "platform-overrides": { - "php": "7.2.25" - } + "platform-dev": [] } diff --git a/infection.json b/infection.json.dist similarity index 100% rename from infection.json rename to infection.json.dist diff --git a/phpcs.xml.dist b/phpcs.xml.dist new file mode 100644 index 00000000..2a91ac65 --- /dev/null +++ b/phpcs.xml.dist @@ -0,0 +1,12 @@ + + + + + + + src/ + test/ + diff --git a/phpstan.neon b/phpstan.neon.dist similarity index 61% rename from phpstan.neon rename to phpstan.neon.dist index d52be24d..08a74d4e 100644 --- a/phpstan.neon +++ b/phpstan.neon.dist @@ -2,8 +2,6 @@ includes: - phpstan-baseline.neon parameters: - checkMissingIterableValueType: false - inferPrivatePropertyTypeFromConstructor: true level: max paths: - src diff --git a/psalm-baseline.xml b/psalm-baseline.xml index 2c0de9db..d4088902 100644 --- a/psalm-baseline.xml +++ b/psalm-baseline.xml @@ -1,2 +1,2 @@ - + diff --git a/psalm.xml b/psalm.xml index 87dbffbd..88c9cda0 100644 --- a/psalm.xml +++ b/psalm.xml @@ -3,6 +3,7 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="https://getpsalm.org/schema/config" xsi:schemaLocation="https://getpsalm.org/schema/config vendor/vimeo/psalm/config.xsd" + cacheDirectory=".build/psalm" errorBaseline="psalm-baseline.xml" resolveFromConfigFile="true" > diff --git a/src/Example.php b/src/Example.php index 28044020..a2d84501 100644 --- a/src/Example.php +++ b/src/Example.php @@ -2,19 +2,11 @@ declare(strict_types=1); -/** - * Copyright (c) 2017-2020 Andreas Möller - * - * For the full copyright and license information, please view - * the LICENSE.md file that was distributed with this source code. - * - * @see https://github.com/ergebnis/php-library-template - */ - -namespace Ergebnis\Library; +namespace Lctrs\Library; final class Example { + /** @var string */ private $name; private function __construct(string $name) @@ -22,12 +14,12 @@ private function __construct(string $name) $this->name = $name; } - public static function fromName(string $name): self + public static function fromName(string $name) : self { return new self($name); } - public function name(): string + public function name() : string { return $this->name; } diff --git a/test/AutoReview/SrcCodeTest.php b/test/AutoReview/SrcCodeTest.php index 7c60ed3c..e5b495ab 100644 --- a/test/AutoReview/SrcCodeTest.php +++ b/test/AutoReview/SrcCodeTest.php @@ -2,35 +2,26 @@ declare(strict_types=1); -/** - * Copyright (c) 2017-2020 Andreas Möller - * - * For the full copyright and license information, please view - * the LICENSE.md file that was distributed with this source code. - * - * @see https://github.com/ergebnis/php-library-template - */ - -namespace Ergebnis\Library\Test\AutoReview; +namespace Lctrs\Library\Test\AutoReview; use Ergebnis\Test\Util\Helper; -use PHPUnit\Framework; +use PHPUnit\Framework\TestCase; /** * @internal * * @coversNothing */ -final class SrcCodeTest extends Framework\TestCase +final class SrcCodeTest extends TestCase { use Helper; - public function testSrcClassesHaveUnitTests(): void + public function testSrcClassesHaveUnitTests() : void { self::assertClassesHaveTests( __DIR__ . '/../../src', - 'Ergebnis\\Library\\', - 'Ergebnis\\Library\\Test\\Unit\\' + 'Lctrs\\Library\\', + 'Lctrs\\Library\\Test\\Unit\\' ); } } diff --git a/test/AutoReview/phpunit.xml b/test/AutoReview/phpunit.xml.dist similarity index 100% rename from test/AutoReview/phpunit.xml rename to test/AutoReview/phpunit.xml.dist diff --git a/test/Integration/phpunit.xml b/test/Integration/phpunit.xml.dist similarity index 100% rename from test/Integration/phpunit.xml rename to test/Integration/phpunit.xml.dist diff --git a/test/Unit/ExampleTest.php b/test/Unit/ExampleTest.php index 01371403..22f02fbc 100644 --- a/test/Unit/ExampleTest.php +++ b/test/Unit/ExampleTest.php @@ -2,31 +2,22 @@ declare(strict_types=1); -/** - * Copyright (c) 2017-2020 Andreas Möller - * - * For the full copyright and license information, please view - * the LICENSE.md file that was distributed with this source code. - * - * @see https://github.com/ergebnis/php-library-template - */ - -namespace Ergebnis\Library\Test\Unit; +namespace Lctrs\Library\Test\Unit; -use Ergebnis\Library\Example; use Ergebnis\Test\Util\Helper; -use PHPUnit\Framework; +use Lctrs\Library\Example; +use PHPUnit\Framework\TestCase; /** * @internal * - * @covers \Ergebnis\Library\Example + * @covers \Lctrs\Library\Example */ -final class ExampleTest extends Framework\TestCase +final class ExampleTest extends TestCase { use Helper; - public function testFromNameReturnsExample(): void + public function testFromNameReturnsExample() : void { $name = self::faker()->sentence; diff --git a/test/Unit/phpunit.xml b/test/Unit/phpunit.xml.dist similarity index 100% rename from test/Unit/phpunit.xml rename to test/Unit/phpunit.xml.dist