require phpstan via composer
This commit is contained in:
parent
2a5c2be6cd
commit
3b70d1f622
|
@ -4,5 +4,8 @@
|
||||||
"chillerlan/php-qrcode": "^3.3",
|
"chillerlan/php-qrcode": "^3.3",
|
||||||
"mervick/material-design-icons": "^2.2",
|
"mervick/material-design-icons": "^2.2",
|
||||||
"j4mie/idiorm": "^1.5"
|
"j4mie/idiorm": "^1.5"
|
||||||
|
},
|
||||||
|
"require-dev": {
|
||||||
|
"phpstan/phpstan": "^0.12.99"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
||||||
"This file is @generated automatically"
|
"This file is @generated automatically"
|
||||||
],
|
],
|
||||||
"content-hash": "e7f23b092328c903b06c8ae31bf13781",
|
"content-hash": "76e40cf59f811ee42d14ac41159c570a",
|
||||||
"packages": [
|
"packages": [
|
||||||
{
|
{
|
||||||
"name": "beberlei/assert",
|
"name": "beberlei/assert",
|
||||||
|
@ -592,7 +592,72 @@
|
||||||
"time": "2020-10-28T17:51:34+00:00"
|
"time": "2020-10-28T17:51:34+00:00"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"packages-dev": [],
|
"packages-dev": [
|
||||||
|
{
|
||||||
|
"name": "phpstan/phpstan",
|
||||||
|
"version": "0.12.99",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/phpstan/phpstan.git",
|
||||||
|
"reference": "b4d40f1d759942f523be267a1bab6884f46ca3f7"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/phpstan/phpstan/zipball/b4d40f1d759942f523be267a1bab6884f46ca3f7",
|
||||||
|
"reference": "b4d40f1d759942f523be267a1bab6884f46ca3f7",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"php": "^7.1|^8.0"
|
||||||
|
},
|
||||||
|
"conflict": {
|
||||||
|
"phpstan/phpstan-shim": "*"
|
||||||
|
},
|
||||||
|
"bin": [
|
||||||
|
"phpstan",
|
||||||
|
"phpstan.phar"
|
||||||
|
],
|
||||||
|
"type": "library",
|
||||||
|
"extra": {
|
||||||
|
"branch-alias": {
|
||||||
|
"dev-master": "0.12-dev"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"autoload": {
|
||||||
|
"files": [
|
||||||
|
"bootstrap.php"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"MIT"
|
||||||
|
],
|
||||||
|
"description": "PHPStan - PHP Static Analysis Tool",
|
||||||
|
"support": {
|
||||||
|
"issues": "https://github.com/phpstan/phpstan/issues",
|
||||||
|
"source": "https://github.com/phpstan/phpstan/tree/0.12.99"
|
||||||
|
},
|
||||||
|
"funding": [
|
||||||
|
{
|
||||||
|
"url": "https://github.com/ondrejmirtes",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"url": "https://github.com/phpstan",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"url": "https://www.patreon.com/phpstan",
|
||||||
|
"type": "patreon"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"url": "https://tidelift.com/funding/github/packagist/phpstan/phpstan",
|
||||||
|
"type": "tidelift"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"time": "2021-09-12T20:09:55+00:00"
|
||||||
|
}
|
||||||
|
],
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"minimum-stability": "stable",
|
"minimum-stability": "stable",
|
||||||
"stability-flags": [],
|
"stability-flags": [],
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
../phpstan/phpstan/phpstan
|
|
@ -0,0 +1 @@
|
||||||
|
../phpstan/phpstan/phpstan.phar
|
|
@ -30,7 +30,7 @@ private static $installed = array (
|
||||||
'aliases' =>
|
'aliases' =>
|
||||||
array (
|
array (
|
||||||
),
|
),
|
||||||
'reference' => 'f96abd2b52b9de5eac3651594ca32c6a4023c3e3',
|
'reference' => '2a5c2be6cdd9ba9217a0661805b62aeec1de90c3',
|
||||||
'dev-requirement' => true,
|
'dev-requirement' => true,
|
||||||
'name' => '__root__',
|
'name' => '__root__',
|
||||||
),
|
),
|
||||||
|
@ -43,7 +43,7 @@ private static $installed = array (
|
||||||
'aliases' =>
|
'aliases' =>
|
||||||
array (
|
array (
|
||||||
),
|
),
|
||||||
'reference' => 'f96abd2b52b9de5eac3651594ca32c6a4023c3e3',
|
'reference' => '2a5c2be6cdd9ba9217a0661805b62aeec1de90c3',
|
||||||
'dev-requirement' => false,
|
'dev-requirement' => false,
|
||||||
),
|
),
|
||||||
'beberlei/assert' =>
|
'beberlei/assert' =>
|
||||||
|
@ -106,6 +106,16 @@ private static $installed = array (
|
||||||
'reference' => 'f34c2b11eb9d2c9318e13540a1dbc2a3afbd939c',
|
'reference' => 'f34c2b11eb9d2c9318e13540a1dbc2a3afbd939c',
|
||||||
'dev-requirement' => false,
|
'dev-requirement' => false,
|
||||||
),
|
),
|
||||||
|
'phpstan/phpstan' =>
|
||||||
|
array (
|
||||||
|
'pretty_version' => '0.12.99',
|
||||||
|
'version' => '0.12.99.0',
|
||||||
|
'aliases' =>
|
||||||
|
array (
|
||||||
|
),
|
||||||
|
'reference' => 'b4d40f1d759942f523be267a1bab6884f46ca3f7',
|
||||||
|
'dev-requirement' => true,
|
||||||
|
),
|
||||||
'spomky-labs/otphp' =>
|
'spomky-labs/otphp' =>
|
||||||
array (
|
array (
|
||||||
'pretty_version' => 'v10.0.1',
|
'pretty_version' => 'v10.0.1',
|
||||||
|
|
|
@ -6,6 +6,7 @@ $vendorDir = dirname(dirname(__FILE__));
|
||||||
$baseDir = dirname($vendorDir);
|
$baseDir = dirname($vendorDir);
|
||||||
|
|
||||||
return array(
|
return array(
|
||||||
|
'9b38cf48e83f5d8f60375221cd213eee' => $vendorDir . '/phpstan/phpstan/bootstrap.php',
|
||||||
'a4ecaeafb8cfb009ad0e052c90355e98' => $vendorDir . '/beberlei/assert/lib/Assert/functions.php',
|
'a4ecaeafb8cfb009ad0e052c90355e98' => $vendorDir . '/beberlei/assert/lib/Assert/functions.php',
|
||||||
'51fcf4e06c07cc00c920b44bcd900e7a' => $vendorDir . '/thecodingmachine/safe/deprecated/apc.php',
|
'51fcf4e06c07cc00c920b44bcd900e7a' => $vendorDir . '/thecodingmachine/safe/deprecated/apc.php',
|
||||||
'47f619d9197b36cf5ab70738d7743fe2' => $vendorDir . '/thecodingmachine/safe/deprecated/libevent.php',
|
'47f619d9197b36cf5ab70738d7743fe2' => $vendorDir . '/thecodingmachine/safe/deprecated/libevent.php',
|
||||||
|
|
|
@ -7,6 +7,7 @@ namespace Composer\Autoload;
|
||||||
class ComposerStaticInit19fc2ff1c0f9a92279c7979386bb2056
|
class ComposerStaticInit19fc2ff1c0f9a92279c7979386bb2056
|
||||||
{
|
{
|
||||||
public static $files = array (
|
public static $files = array (
|
||||||
|
'9b38cf48e83f5d8f60375221cd213eee' => __DIR__ . '/..' . '/phpstan/phpstan/bootstrap.php',
|
||||||
'a4ecaeafb8cfb009ad0e052c90355e98' => __DIR__ . '/..' . '/beberlei/assert/lib/Assert/functions.php',
|
'a4ecaeafb8cfb009ad0e052c90355e98' => __DIR__ . '/..' . '/beberlei/assert/lib/Assert/functions.php',
|
||||||
'51fcf4e06c07cc00c920b44bcd900e7a' => __DIR__ . '/..' . '/thecodingmachine/safe/deprecated/apc.php',
|
'51fcf4e06c07cc00c920b44bcd900e7a' => __DIR__ . '/..' . '/thecodingmachine/safe/deprecated/apc.php',
|
||||||
'47f619d9197b36cf5ab70738d7743fe2' => __DIR__ . '/..' . '/thecodingmachine/safe/deprecated/libevent.php',
|
'47f619d9197b36cf5ab70738d7743fe2' => __DIR__ . '/..' . '/thecodingmachine/safe/deprecated/libevent.php',
|
||||||
|
|
|
@ -389,6 +389,73 @@
|
||||||
},
|
},
|
||||||
"install-path": "../paragonie/constant_time_encoding"
|
"install-path": "../paragonie/constant_time_encoding"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "phpstan/phpstan",
|
||||||
|
"version": "0.12.99",
|
||||||
|
"version_normalized": "0.12.99.0",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/phpstan/phpstan.git",
|
||||||
|
"reference": "b4d40f1d759942f523be267a1bab6884f46ca3f7"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/phpstan/phpstan/zipball/b4d40f1d759942f523be267a1bab6884f46ca3f7",
|
||||||
|
"reference": "b4d40f1d759942f523be267a1bab6884f46ca3f7",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"php": "^7.1|^8.0"
|
||||||
|
},
|
||||||
|
"conflict": {
|
||||||
|
"phpstan/phpstan-shim": "*"
|
||||||
|
},
|
||||||
|
"time": "2021-09-12T20:09:55+00:00",
|
||||||
|
"bin": [
|
||||||
|
"phpstan",
|
||||||
|
"phpstan.phar"
|
||||||
|
],
|
||||||
|
"type": "library",
|
||||||
|
"extra": {
|
||||||
|
"branch-alias": {
|
||||||
|
"dev-master": "0.12-dev"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"installation-source": "dist",
|
||||||
|
"autoload": {
|
||||||
|
"files": [
|
||||||
|
"bootstrap.php"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"MIT"
|
||||||
|
],
|
||||||
|
"description": "PHPStan - PHP Static Analysis Tool",
|
||||||
|
"support": {
|
||||||
|
"issues": "https://github.com/phpstan/phpstan/issues",
|
||||||
|
"source": "https://github.com/phpstan/phpstan/tree/0.12.99"
|
||||||
|
},
|
||||||
|
"funding": [
|
||||||
|
{
|
||||||
|
"url": "https://github.com/ondrejmirtes",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"url": "https://github.com/phpstan",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"url": "https://www.patreon.com/phpstan",
|
||||||
|
"type": "patreon"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"url": "https://tidelift.com/funding/github/packagist/phpstan/phpstan",
|
||||||
|
"type": "tidelift"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"install-path": "../phpstan/phpstan"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "spomky-labs/otphp",
|
"name": "spomky-labs/otphp",
|
||||||
"version": "v10.0.1",
|
"version": "v10.0.1",
|
||||||
|
@ -611,5 +678,7 @@
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"dev-package-names": []
|
"dev-package-names": [
|
||||||
|
"phpstan/phpstan"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
'aliases' =>
|
'aliases' =>
|
||||||
array (
|
array (
|
||||||
),
|
),
|
||||||
'reference' => 'f96abd2b52b9de5eac3651594ca32c6a4023c3e3',
|
'reference' => '2a5c2be6cdd9ba9217a0661805b62aeec1de90c3',
|
||||||
'dev-requirement' => true,
|
'dev-requirement' => true,
|
||||||
'name' => '__root__',
|
'name' => '__root__',
|
||||||
),
|
),
|
||||||
|
@ -19,7 +19,7 @@
|
||||||
'aliases' =>
|
'aliases' =>
|
||||||
array (
|
array (
|
||||||
),
|
),
|
||||||
'reference' => 'f96abd2b52b9de5eac3651594ca32c6a4023c3e3',
|
'reference' => '2a5c2be6cdd9ba9217a0661805b62aeec1de90c3',
|
||||||
'dev-requirement' => false,
|
'dev-requirement' => false,
|
||||||
),
|
),
|
||||||
'beberlei/assert' =>
|
'beberlei/assert' =>
|
||||||
|
@ -82,6 +82,16 @@
|
||||||
'reference' => 'f34c2b11eb9d2c9318e13540a1dbc2a3afbd939c',
|
'reference' => 'f34c2b11eb9d2c9318e13540a1dbc2a3afbd939c',
|
||||||
'dev-requirement' => false,
|
'dev-requirement' => false,
|
||||||
),
|
),
|
||||||
|
'phpstan/phpstan' =>
|
||||||
|
array (
|
||||||
|
'pretty_version' => '0.12.99',
|
||||||
|
'version' => '0.12.99.0',
|
||||||
|
'aliases' =>
|
||||||
|
array (
|
||||||
|
),
|
||||||
|
'reference' => 'b4d40f1d759942f523be267a1bab6884f46ca3f7',
|
||||||
|
'dev-requirement' => true,
|
||||||
|
),
|
||||||
'spomky-labs/otphp' =>
|
'spomky-labs/otphp' =>
|
||||||
array (
|
array (
|
||||||
'pretty_version' => 'v10.0.1',
|
'pretty_version' => 'v10.0.1',
|
||||||
|
|
|
@ -0,0 +1,11 @@
|
||||||
|
/.github export-ignore
|
||||||
|
/BACKERS.md export-ignore
|
||||||
|
/CODE_OF_CONDUCT.md export-ignore
|
||||||
|
/docker export-ignore
|
||||||
|
/e2e export-ignore
|
||||||
|
/issue-bot export-ignore
|
||||||
|
/playground-api export-ignore
|
||||||
|
/playground-runner export-ignore
|
||||||
|
/.travis.yml export-ignore
|
||||||
|
/website export-ignore
|
||||||
|
website/* linguist-vendored
|
|
@ -0,0 +1,9 @@
|
||||||
|
/build/phpstan-generated.neon
|
||||||
|
/composer.lock
|
||||||
|
/conf/config.local.yml
|
||||||
|
/e2e/composer.lock
|
||||||
|
/e2e/vendor
|
||||||
|
/vendor
|
||||||
|
/.idea
|
||||||
|
/tests/tmp
|
||||||
|
/tests/.phpunit.result.cache
|
|
@ -0,0 +1,21 @@
|
||||||
|
MIT License
|
||||||
|
|
||||||
|
Copyright (c) 2016 Ondřej Mirtes
|
||||||
|
|
||||||
|
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 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.
|
|
@ -0,0 +1,91 @@
|
||||||
|
<h1 align="center">PHPStan - PHP Static Analysis Tool</h1>
|
||||||
|
|
||||||
|
<p align="center">
|
||||||
|
<img src="https://i.imgur.com/WaRKPlC.png" alt="PHPStan" width="300" height="300">
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p align="center">
|
||||||
|
<a href="https://github.com/phpstan/phpstan/actions"><img src="https://github.com/phpstan/phpstan/workflows/Build/badge.svg" alt="Build Status"></a>
|
||||||
|
<a href="https://packagist.org/packages/phpstan/phpstan"><img src="https://poser.pugx.org/phpstan/phpstan/v/stable" alt="Latest Stable Version"></a>
|
||||||
|
<a href="https://packagist.org/packages/phpstan/phpstan/stats"><img src="https://poser.pugx.org/phpstan/phpstan/downloads" alt="Total Downloads"></a>
|
||||||
|
<a href="https://choosealicense.com/licenses/mit/"><img src="https://poser.pugx.org/phpstan/phpstan/license" alt="License"></a>
|
||||||
|
<a href="https://phpstan.org/"><img src="https://img.shields.io/badge/PHPStan-enabled-brightgreen.svg?style=flat" alt="PHPStan Enabled"></a>
|
||||||
|
</p>
|
||||||
|
|
||||||
|
------
|
||||||
|
|
||||||
|
PHPStan focuses on finding errors in your code without actually running it. It catches whole classes of bugs
|
||||||
|
even before you write tests for the code. It moves PHP closer to compiled languages in the sense that the correctness of each line of the code
|
||||||
|
can be checked before you run the actual line.
|
||||||
|
|
||||||
|
**[Read more about PHPStan in an introductory article »](https://phpstan.org/blog/find-bugs-in-your-code-without-writing-tests)**
|
||||||
|
|
||||||
|
**[Try out PHPStan on the on-line playground! »](https://phpstan.org/)**
|
||||||
|
|
||||||
|
## Sponsors
|
||||||
|
|
||||||
|
<a href="https://coders.thecodingmachine.com/phpstan"><img src="https://i.imgur.com/kQhNOTP.png" alt="TheCodingMachine" width="247" height="64"></a>
|
||||||
|
|
||||||
|
<a href="https://packagist.com/?utm_source=phpstan&utm_medium=readme&utm_campaign=sponsorlogo"><img src="https://i.imgur.com/PmMC45f.png" alt="Private Packagist" width="326" height="64"></a>
|
||||||
|
<br>
|
||||||
|
<a href="https://musement.recruiterbox.com/jobs/f661d5d5676e4c578d289bcf2fb40b02"><img src="https://i.imgur.com/uw5rAlR.png" alt="Musement" width="247" height="49"></a>
|
||||||
|
|
||||||
|
<a href="https://blackfire.io/docs/introduction?utm_source=phpstan&utm_medium=github_readme&utm_campaign=logo"><img src="https://i.imgur.com/zR8rsqk.png" alt="Blackfire.io" width="254" height="64"></a>
|
||||||
|
<br>
|
||||||
|
<a href="https://www.intracto.com/"><img src="https://i.imgur.com/XRCDGZi.png" alt="Intracto" width="254" height="65"></a>
|
||||||
|
|
||||||
|
<a href="https://jobs.ticketswap.com/"><img src="https://i.imgur.com/lhzcutK.png" alt="TicketSwap" width="269" height="64"></a>
|
||||||
|
<br>
|
||||||
|
<a href="https://www.startupjobs.cz/startup/shipmonk"><img src="https://i.imgur.com/bAC47za.jpg" alt="ShipMonk" width="290" height="64"></a>
|
||||||
|
|
||||||
|
<a href="https://togetter.com/"><img src="https://i.imgur.com/x9n5cj3.png" alt="Togetter" width="283" height="64"></a>
|
||||||
|
<br>
|
||||||
|
<a href="https://join.rightcapital.com/?utm_source=phpstan&utm_medium=github&utm_campaign=sponsorship"><img src="https://i.imgur.com/EuIgI08.png" alt="RightCapital" width="283" height="64"></a>
|
||||||
|
|
||||||
|
<a href="https://www.contentkingapp.com/?ref=php-developer&utm_source=phpstan&utm_medium=referral&utm_campaign=sponsorship"><img src="https://i.imgur.com/0blm7ki.png" alt="ContentKing" width="283" height="64"></a>
|
||||||
|
<br>
|
||||||
|
<a href="https://zol.fr?utm_source=phpstan"><img src="https://i.imgur.com/dzDgd4s.png" alt="ZOL" width="283" height="64"></a>
|
||||||
|
|
||||||
|
<a href="https://kocourek.uk/"><img src="https://i.imgur.com/EX29z98.png" alt="Stepan Kocourek" width="294" height="64"></a>
|
||||||
|
<br>
|
||||||
|
<a href="https://www.shopware.com/en/"><img src="https://i.imgur.com/L4X5w9s.png" alt="Shopware" width="284" height="64"></a>
|
||||||
|
|
||||||
|
<a href="https://craftcms.com/"><img src="https://i.imgur.com/xJWThke.png" alt="Craft CMS" width="283" height="64"></a>
|
||||||
|
|
||||||
|
[**You can now sponsor my open-source work on PHPStan through GitHub Sponsors.**](https://github.com/sponsors/ondrejmirtes)
|
||||||
|
|
||||||
|
Does GitHub already have your 💳? Do you use PHPStan to find 🐛 before they reach production? [Send a couple of 💸 a month my way too.](https://github.com/sponsors/ondrejmirtes) Thank you!
|
||||||
|
|
||||||
|
One-time donations [through PayPal](https://paypal.me/phpstan) are also accepted. To request an invoice, [contact me](mailto:ondrej@mirtes.cz) through e-mail.
|
||||||
|
|
||||||
|
## Documentation
|
||||||
|
|
||||||
|
All the documentation lives on the [phpstan.org website](https://phpstan.org/):
|
||||||
|
|
||||||
|
* [Getting Started & User Guide](https://phpstan.org/user-guide/getting-started)
|
||||||
|
* [Config Reference](https://phpstan.org/config-reference)
|
||||||
|
* [PHPDocs Basics](https://phpstan.org/writing-php-code/phpdocs-basics) & [PHPDoc Types](https://phpstan.org/writing-php-code/phpdoc-types)
|
||||||
|
* [Extension Library](https://phpstan.org/user-guide/extension-library)
|
||||||
|
* [Developing Extensions](https://phpstan.org/developing-extensions/extension-types)
|
||||||
|
|
||||||
|
## PHPStan Pro
|
||||||
|
|
||||||
|
PHPStan Pro is a paid add-on on top of open-source PHPStan Static Analysis Tool with these premium features:
|
||||||
|
|
||||||
|
* Web UI for browsing found errors, you can click and open your editor of choice on the offending line.
|
||||||
|
* Continuous analysis (watch mode): scans changed files in the background, refreshes the UI automatically.
|
||||||
|
* Interactive fixer: lets you choose the right fix for found errors :blush:
|
||||||
|
|
||||||
|
Try it on PHPStan 0.12.45 or later by running it with the `--pro` option. You can create an account either by following the on-screen instructions, or by visiting [account.phpstan.com](https://account.phpstan.com/).
|
||||||
|
|
||||||
|
After 30-day free trial period it costs 7 EUR for individuals monthly, 70 EUR for teams (up to 25 members). By paying for PHPStan Pro, you're supporting the development of open-source PHPStan.
|
||||||
|
|
||||||
|
You can read more about it on [PHPStan's website](https://phpstan.org/blog/introducing-phpstan-pro).
|
||||||
|
|
||||||
|
## Code of Conduct
|
||||||
|
|
||||||
|
This project adheres to a [Contributor Code of Conduct](https://github.com/phpstan/phpstan/blob/master/CODE_OF_CONDUCT.md). By participating in this project and its community, you are expected to uphold this code.
|
||||||
|
|
||||||
|
## Contributing
|
||||||
|
|
||||||
|
Any contributions are welcome. PHPStan's source code open to pull requests lives at [`phpstan/phpstan-src`](https://github.com/phpstan/phpstan-src).
|
|
@ -0,0 +1,60 @@
|
||||||
|
<?php declare(strict_types = 1);
|
||||||
|
|
||||||
|
namespace PHPStan;
|
||||||
|
|
||||||
|
use Composer\Autoload\ClassLoader;
|
||||||
|
|
||||||
|
final class PharAutoloader
|
||||||
|
{
|
||||||
|
/** @var ClassLoader */
|
||||||
|
private static $composerAutoloader;
|
||||||
|
|
||||||
|
final public static function loadClass(string $class): void {
|
||||||
|
if (!extension_loaded('phar') || defined('__PHPSTAN_RUNNING__')) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (strpos($class, '_PHPStan_') === 0) {
|
||||||
|
if (!in_array('phar', stream_get_wrappers(), true)) {
|
||||||
|
throw new \Exception('Phar wrapper is not registered. Please review your php.ini settings.');
|
||||||
|
}
|
||||||
|
|
||||||
|
if (self::$composerAutoloader === null) {
|
||||||
|
self::$composerAutoloader = require 'phar://' . __DIR__ . '/phpstan.phar/vendor/autoload.php';
|
||||||
|
require_once 'phar://' . __DIR__ . '/phpstan.phar/vendor/clue/block-react/src/functions_include.php';
|
||||||
|
require_once 'phar://' . __DIR__ . '/phpstan.phar/vendor/jetbrains/phpstorm-stubs/PhpStormStubsMap.php';
|
||||||
|
require_once 'phar://' . __DIR__ . '/phpstan.phar/vendor/react/promise-stream/src/functions_include.php';
|
||||||
|
require_once 'phar://' . __DIR__ . '/phpstan.phar/vendor/react/promise-timer/src/functions_include.php';
|
||||||
|
require_once 'phar://' . __DIR__ . '/phpstan.phar/vendor/react/promise/src/functions_include.php';
|
||||||
|
require_once 'phar://' . __DIR__ . '/phpstan.phar/vendor/ringcentral/psr7/src/functions_include.php';
|
||||||
|
}
|
||||||
|
self::$composerAutoloader->loadClass($class);
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (strpos($class, 'PHPStan\\') !== 0 || strpos($class, 'PHPStan\\PhpDocParser\\') === 0) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!in_array('phar', stream_get_wrappers(), true)) {
|
||||||
|
throw new \Exception('Phar wrapper is not registered. Please review your php.ini settings.');
|
||||||
|
}
|
||||||
|
|
||||||
|
$filename = str_replace('\\', DIRECTORY_SEPARATOR, $class);
|
||||||
|
if (strpos($class, 'PHPStan\\BetterReflection\\') === 0) {
|
||||||
|
$filename = substr($filename, strlen('PHPStan\\BetterReflection\\'));
|
||||||
|
$filepath = 'phar://' . __DIR__ . '/phpstan.phar/vendor/ondrejmirtes/better-reflection/src/' . $filename . '.php';
|
||||||
|
} else {
|
||||||
|
$filename = substr($filename, strlen('PHPStan\\'));
|
||||||
|
$filepath = 'phar://' . __DIR__ . '/phpstan.phar/src/' . $filename . '.php';
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!file_exists($filepath)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
require $filepath;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
spl_autoload_register([PharAutoloader::class, 'loadClass']);
|
|
@ -0,0 +1,23 @@
|
||||||
|
{
|
||||||
|
"name": "phpstan/phpstan",
|
||||||
|
"description": "PHPStan - PHP Static Analysis Tool",
|
||||||
|
"license": ["MIT"],
|
||||||
|
"require": {
|
||||||
|
"php": "^7.1|^8.0"
|
||||||
|
},
|
||||||
|
"conflict": {
|
||||||
|
"phpstan/phpstan-shim": "*"
|
||||||
|
},
|
||||||
|
"bin": [
|
||||||
|
"phpstan",
|
||||||
|
"phpstan.phar"
|
||||||
|
],
|
||||||
|
"extra": {
|
||||||
|
"branch-alias": {
|
||||||
|
"dev-master": "0.12-dev"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"autoload": {
|
||||||
|
"files": ["bootstrap.php"]
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,2 @@
|
||||||
|
includes:
|
||||||
|
- phar://phpstan.phar/conf/bleedingEdge.neon
|
|
@ -0,0 +1,8 @@
|
||||||
|
#!/usr/bin/env php
|
||||||
|
<?php
|
||||||
|
|
||||||
|
declare (strict_types=1);
|
||||||
|
|
||||||
|
Phar::loadPhar(__DIR__ . '/phpstan.phar', 'phpstan.phar');
|
||||||
|
|
||||||
|
require 'phar://phpstan.phar/bin/phpstan';
|
Binary file not shown.
|
@ -0,0 +1,16 @@
|
||||||
|
-----BEGIN PGP SIGNATURE-----
|
||||||
|
|
||||||
|
iQIzBAABCgAdFiEE0yaA1ZV9xxFr4pwUzxoQjQ565yAFAmE+XpIACgkQzxoQjQ56
|
||||||
|
5yDsLg/+Nv1uIaCuKfAlpBv+GmszF/jj7P91VYNpf5Zts9lj0tm91MRu+vVc46q7
|
||||||
|
v68dIYZoOJE69n+Nvg0BuXA+ZuuMR0A/vMot3CqxqAPAslwaE6c9tg1OpktFoYQp
|
||||||
|
t7IqU/ftz4OlCEkeBigEtmYe585ppBkWwZNakl81xA5K+DqXEJqCFCdROVRJfa5K
|
||||||
|
36ck/iIAs2EOtQCwvIQttqev1fTVQAfTicH1B7wnqsg9zQ1a9l1/V2JlhxtzpCsc
|
||||||
|
1T27yoiUOewpfyVSu3kBUPsXtppFe9X2UjRaOIpUiguXxEsWRW/eUMWFOnUG2tv0
|
||||||
|
m1S8Q3roY92eYq94LtHs5mj11YPIkRbzwTwoZv4F5g1pS5jSVhQklCTdrOb6XXfh
|
||||||
|
aiFe8aiwjFdOs4y5eDGpttDOMOtgDxogGphXiXpzAILn/4mfoP6Cgcd1sOReXaLV
|
||||||
|
V/eMQvZG3Np93lYf/ezR++Rk4ZM1UAz7fkYw5lTZN3epShpsdsrPGj5MdJoahTFr
|
||||||
|
+ITm4TVWpuiPIQqV/2TeIm3m0tdXaTGGgOv+qMdOFbEcMqSFg5WnfdWjSzj35R7n
|
||||||
|
wsjnhyN5MIkMWvWFO4wail3gUUpzKZGyd0Gbo3fVi67piUG38CcjxWUiYZ2EShwp
|
||||||
|
A88kgsC7m+Ye6Pcjs70VhqHbW+HyW5bwBOuVdVqpkeqgLDM7tuo=
|
||||||
|
=KGGY
|
||||||
|
-----END PGP SIGNATURE-----
|
Loading…
Reference in New Issue