require phpstan via composer

master
Andrew Dolgov 3 years ago
parent 2a5c2be6cd
commit 3b70d1f622

@ -4,5 +4,8 @@
"chillerlan/php-qrcode": "^3.3",
"mervick/material-design-icons": "^2.2",
"j4mie/idiorm": "^1.5"
},
"require-dev": {
"phpstan/phpstan": "^0.12.99"
}
}

69
composer.lock generated

@ -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": "e7f23b092328c903b06c8ae31bf13781",
"content-hash": "76e40cf59f811ee42d14ac41159c570a",
"packages": [
{
"name": "beberlei/assert",
@ -592,7 +592,72 @@
"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": [],
"minimum-stability": "stable",
"stability-flags": [],

@ -0,0 +1 @@
../phpstan/phpstan/phpstan

@ -0,0 +1 @@
../phpstan/phpstan/phpstan.phar

@ -30,7 +30,7 @@ private static $installed = array (
'aliases' =>
array (
),
'reference' => 'f96abd2b52b9de5eac3651594ca32c6a4023c3e3',
'reference' => '2a5c2be6cdd9ba9217a0661805b62aeec1de90c3',
'dev-requirement' => true,
'name' => '__root__',
),
@ -43,7 +43,7 @@ private static $installed = array (
'aliases' =>
array (
),
'reference' => 'f96abd2b52b9de5eac3651594ca32c6a4023c3e3',
'reference' => '2a5c2be6cdd9ba9217a0661805b62aeec1de90c3',
'dev-requirement' => false,
),
'beberlei/assert' =>
@ -106,6 +106,16 @@ private static $installed = array (
'reference' => 'f34c2b11eb9d2c9318e13540a1dbc2a3afbd939c',
'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' =>
array (
'pretty_version' => 'v10.0.1',

@ -6,6 +6,7 @@ $vendorDir = dirname(dirname(__FILE__));
$baseDir = dirname($vendorDir);
return array(
'9b38cf48e83f5d8f60375221cd213eee' => $vendorDir . '/phpstan/phpstan/bootstrap.php',
'a4ecaeafb8cfb009ad0e052c90355e98' => $vendorDir . '/beberlei/assert/lib/Assert/functions.php',
'51fcf4e06c07cc00c920b44bcd900e7a' => $vendorDir . '/thecodingmachine/safe/deprecated/apc.php',
'47f619d9197b36cf5ab70738d7743fe2' => $vendorDir . '/thecodingmachine/safe/deprecated/libevent.php',

@ -7,6 +7,7 @@ namespace Composer\Autoload;
class ComposerStaticInit19fc2ff1c0f9a92279c7979386bb2056
{
public static $files = array (
'9b38cf48e83f5d8f60375221cd213eee' => __DIR__ . '/..' . '/phpstan/phpstan/bootstrap.php',
'a4ecaeafb8cfb009ad0e052c90355e98' => __DIR__ . '/..' . '/beberlei/assert/lib/Assert/functions.php',
'51fcf4e06c07cc00c920b44bcd900e7a' => __DIR__ . '/..' . '/thecodingmachine/safe/deprecated/apc.php',
'47f619d9197b36cf5ab70738d7743fe2' => __DIR__ . '/..' . '/thecodingmachine/safe/deprecated/libevent.php',

@ -389,6 +389,73 @@
},
"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",
"version": "v10.0.1",
@ -611,5 +678,7 @@
}
],
"dev": true,
"dev-package-names": []
"dev-package-names": [
"phpstan/phpstan"
]
}

@ -6,7 +6,7 @@
'aliases' =>
array (
),
'reference' => 'f96abd2b52b9de5eac3651594ca32c6a4023c3e3',
'reference' => '2a5c2be6cdd9ba9217a0661805b62aeec1de90c3',
'dev-requirement' => true,
'name' => '__root__',
),
@ -19,7 +19,7 @@
'aliases' =>
array (
),
'reference' => 'f96abd2b52b9de5eac3651594ca32c6a4023c3e3',
'reference' => '2a5c2be6cdd9ba9217a0661805b62aeec1de90c3',
'dev-requirement' => false,
),
'beberlei/assert' =>
@ -82,6 +82,16 @@
'reference' => 'f34c2b11eb9d2c9318e13540a1dbc2a3afbd939c',
'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' =>
array (
'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>
&nbsp;&nbsp;&nbsp;
<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>
&nbsp;&nbsp;&nbsp;
<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>
&nbsp;&nbsp;&nbsp;
<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>
&nbsp;&nbsp;&nbsp;
<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>
&nbsp;&nbsp;&nbsp;
<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>
&nbsp;&nbsp;&nbsp;
<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>
&nbsp;&nbsp;&nbsp;
<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…
Cancel
Save