generated from spatie/package-skeleton-laravel
-
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
3 changed files
with
164 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,29 @@ | ||
name: PHP Insights | ||
|
||
on: push | ||
|
||
jobs: | ||
phpinsights: | ||
runs-on: ubuntu-latest | ||
strategy: | ||
fail-fast: false | ||
matrix: | ||
php: [8.0,8.1] | ||
|
||
steps: | ||
- name: Checkout code | ||
uses: actions/checkout@v2 | ||
|
||
- name: Setup PHP | ||
uses: shivammathur/setup-php@v2 | ||
with: | ||
php-version: ${{ matrix.php }} | ||
extensions: dom, curl, libxml, mbstring, zip, json | ||
coverage: none | ||
|
||
- name: Install dependencies | ||
run: | | ||
composer install --no-interaction --no-progress --no-scripts -o | ||
- name: Run PHP Insights | ||
run: ./vendor/bin/phpinsights app --summary -v --min-quality=80 --min-complexity=80 --min-architecture=80 --min-style=80 --disable-security-check |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,132 @@ | ||
<?php | ||
|
||
declare(strict_types=1); | ||
|
||
use NunoMaduro\PhpInsights\Domain\Insights\ForbiddenDefineFunctions; | ||
use NunoMaduro\PhpInsights\Domain\Insights\ForbiddenFinalClasses; | ||
use NunoMaduro\PhpInsights\Domain\Insights\ForbiddenNormalClasses; | ||
use NunoMaduro\PhpInsights\Domain\Insights\ForbiddenPrivateMethods; | ||
use NunoMaduro\PhpInsights\Domain\Insights\ForbiddenTraits; | ||
use NunoMaduro\PhpInsights\Domain\Metrics\Architecture\Classes; | ||
use SlevomatCodingStandard\Sniffs\Commenting\UselessFunctionDocCommentSniff; | ||
use SlevomatCodingStandard\Sniffs\Namespaces\AlphabeticallySortedUsesSniff; | ||
use SlevomatCodingStandard\Sniffs\TypeHints\DeclareStrictTypesSniff; | ||
use SlevomatCodingStandard\Sniffs\TypeHints\DisallowMixedTypeHintSniff; | ||
use SlevomatCodingStandard\Sniffs\TypeHints\ParameterTypeHintSniff; | ||
use SlevomatCodingStandard\Sniffs\TypeHints\PropertyTypeHintSniff; | ||
use SlevomatCodingStandard\Sniffs\TypeHints\ReturnTypeHintSniff; | ||
|
||
return [ | ||
|
||
/* | ||
|-------------------------------------------------------------------------- | ||
| Default Preset | ||
|-------------------------------------------------------------------------- | ||
| | ||
| This option controls the default preset that will be used by PHP Insights | ||
| to make your code reliable, simple, and clean. However, you can always | ||
| adjust the `Metrics` and `Insights` below in this configuration file. | ||
| | ||
| Supported: "default", "laravel", "symfony", "magento2", "drupal" | ||
| | ||
*/ | ||
|
||
'preset' => 'laravel', | ||
|
||
/* | ||
|-------------------------------------------------------------------------- | ||
| IDE | ||
|-------------------------------------------------------------------------- | ||
| | ||
| This options allow to add hyperlinks in your terminal to quickly open | ||
| files in your favorite IDE while browsing your PhpInsights report. | ||
| | ||
| Supported: "textmate", "macvim", "emacs", "sublime", "phpstorm", | ||
| "atom", "vscode". | ||
| | ||
| If you have another IDE that is not in this list but which provide an | ||
| url-handler, you could fill this config with a pattern like this: | ||
| | ||
| myide://open?url=file://%f&line=%l | ||
| | ||
*/ | ||
|
||
'ide' => null, | ||
|
||
/* | ||
|-------------------------------------------------------------------------- | ||
| Configuration | ||
|-------------------------------------------------------------------------- | ||
| | ||
| Here you may adjust all the various `Insights` that will be used by PHP | ||
| Insights. You can either add, remove or configure `Insights`. Keep in | ||
| mind that all added `Insights` must belong to a specific `Metric`. | ||
| | ||
*/ | ||
|
||
'exclude' => [ | ||
// 'path/to/directory-or-file' | ||
], | ||
|
||
'add' => [ | ||
Classes::class => [ | ||
ForbiddenFinalClasses::class, | ||
], | ||
], | ||
|
||
'remove' => [ | ||
AlphabeticallySortedUsesSniff::class, | ||
DeclareStrictTypesSniff::class, | ||
DisallowMixedTypeHintSniff::class, | ||
ForbiddenDefineFunctions::class, | ||
ForbiddenNormalClasses::class, | ||
ForbiddenTraits::class, | ||
ParameterTypeHintSniff::class, | ||
PropertyTypeHintSniff::class, | ||
ReturnTypeHintSniff::class, | ||
UselessFunctionDocCommentSniff::class, | ||
], | ||
|
||
'config' => [ | ||
ForbiddenPrivateMethods::class => [ | ||
'title' => 'The usage of private methods is not idiomatic in Laravel.', | ||
], | ||
\NunoMaduro\PhpInsights\Domain\Insights\CyclomaticComplexityIsHigh::class => [ | ||
'maxComplexity' => 20, | ||
], | ||
|
||
], | ||
|
||
/* | ||
|-------------------------------------------------------------------------- | ||
| Requirements | ||
|-------------------------------------------------------------------------- | ||
| | ||
| Here you may define a level you want to reach per `Insights` category. | ||
| When a score is lower than the minimum level defined, then an error | ||
| code will be returned. This is optional and individually defined. | ||
| | ||
*/ | ||
|
||
'requirements' => [ | ||
'min-quality' => 80, | ||
'min-complexity' => 80, | ||
'min-architecture' => 80, | ||
'min-style' => 80, | ||
'disable-security-check' => true, | ||
], | ||
|
||
/* | ||
|-------------------------------------------------------------------------- | ||
| Threads | ||
|-------------------------------------------------------------------------- | ||
| | ||
| Here you may adjust how many threads (core) PHPInsights can use to perform | ||
| the analyse. This is optional, don't provide it and the tool will guess | ||
| the max core number available. This accept null value or integer > 0. | ||
| | ||
*/ | ||
|
||
'threads' => null, | ||
|
||
]; |