Download the PHP package phpstan/phpstan-strict-rules without Composer

On this page you can find all versions of the php package phpstan/phpstan-strict-rules. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package phpstan-strict-rules

Extra strict and opinionated rules for PHPStan

Build Latest Stable Version License

PHPStan focuses on finding bugs in your code. But in PHP there's a lot of leeway in how stuff can be written. This repository contains additional rules that revolve around strictly and strongly typed code with no loose casting for those who want additional safety in extremely defensive programming:

Configuration Parameters Rule Description
booleansInConditions Require booleans in if, elseif, ternary operator, after !, and on both sides of && and \|\|.
booleansInLoopConditions Require booleans in while and do while loop conditions.
uselessCast Detect useless casts — e.g. casting to int when the expression is already int.
numericOperandsInArithmeticOperators Require numeric operands in +, -, *, /, %, **, +$var, -$var, $var++, $var--, ++$var and --$var.
strictFunctionCalls These functions contain a $strict parameter for better type safety, it must be set to true:
in_array (3rd parameter)
array_search (3rd parameter)
array_keys (3rd parameter; only if the 2nd parameter $search_value is provided)
base64_decode (2nd parameter).
overwriteVariablesWithLoop Disallow overwriting variables with foreach key and value variables.
Disallow overwriting variables with for loop initial assignment.
switchConditionsMatchingType Types in switch condition and case value must match. PHP compares them loosely by default and that can lead to unexpected results.
dynamicCallOnStaticMethod Check that statically declared methods are called statically.
disallowedEmpty Disallow empty() - it's a very loose comparison (see manual), it's recommended to use more strict one.
disallowedLooseComparison Disallow loose comparison via == and !=.
disallowedShortTernary Disallow short ternary operator (?:) - implies weak comparison, it's recommended to use null coalesce operator (??) or ternary operator with strict condition.
noVariableVariables Disallow variable variables ($$foo, $this->$method() etc.).
checkAlwaysTrueInstanceof, checkAlwaysTrueCheckTypeFunctionCall, checkAlwaysTrueStrictComparison Always true instanceof, type-checking is_* functions and strict comparisons ===/!==. These checks can be turned off by setting checkAlwaysTrueInstanceof, checkAlwaysTrueCheckTypeFunctionCall and checkAlwaysTrueStrictComparison to false.
Correct case for referenced and called function names.
matchingInheritedMethodNames Correct case for inherited and implemented method names.
Contravariance for parameter types and covariance for return types in inherited methods (also known as Liskov substitution principle - LSP).
Check LSP even for static methods.
requireParentConstructorCall Require calling parent constructor.
disallowedBacktick Disallow usage of backtick operator ($ls = `ls -la`).
disallowedImplicitArrayCreation Disallow implicit array creation through $var[] = when the variable does not exist yet.
strictArrayFilter Require array_filter() to have a callback parameter to avoid loose comparison semantics.
illegalConstructorMethodCall Disallow calling __construct() on an existing object or as a static call outside of parent constructor.
closureUsesThis Closure should use $this directly instead of using $this variable indirectly.

Additional rules are coming in subsequent releases!

Installation

To use this extension, require it in Composer:

If you also install phpstan/extension-installer then you're all set!

Manual installation If you don't want to use `phpstan/extension-installer`, include rules.neon in your project's PHPStan config:

Disabling rules

You can disable rules using configuration parameters:

Aside from introducing new custom rules, phpstan-strict-rules also documented on phpstan.org.

Enabling rules one-by-one

If you don't want to start using all the available strict rules at once but only one or two, you can!

You can disable all rules from the included rules.neon with:

Then you can re-enable individual rules with configuration parameters:

Even with strictRules.allRules set to false, part of this package is still in effect. That's because phpstan-strict-rules also documented on phpstan.org.


All versions of phpstan-strict-rules with dependencies

PHP Build Version
Package Version
Requires php Version ^7.4 || ^8.0
phpstan/phpstan Version ^2.1.39
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package phpstan/phpstan-strict-rules contains the following files

Loading the files please wait ...