parameters:
	# TODO: Increase rule-level https://phpstan.org/user-guide/rule-levels
	level: 8
	phpVersion: 80399	# TODO: Remove line when moving composer.json to PHP 8+
	fileExtensions:
		- php
		- phtml
	paths:
		- .
	excludePaths:
		analyse:
			- lib/marienfressinaud/*
			- lib/phpgt/*
			- lib/phpmailer/*
			- lib/SimplePie/*
			- vendor/*
		analyseAndScan:
			- .git/*
			- extensions/node_modules
			- extensions/symbolic
			- extensions/vendor
			- node_modules/*
	bootstrapFiles:
		- cli/_cli.php
		- lib/favicons.php
	dynamicConstantNames:
		- CACHE_PATH
		- COPY_LOG_TO_SYSLOG
		- COPY_SYSLOG_TO_STDERR
		- DATA_PATH
		- MAX_LOG_SIZE
		- PUBLIC_RELATIVE
		- SIMPLEPIE_SYSLOG_ENABLED
		- STDERR
		- STDOUT
		- TMP_PATH
		- USERS_PATH
	checkMissingOverrideMethodAttribute: true
	reportMaybesInPropertyPhpDocTypes: false
	treatPhpDocTypesAsCertain: false
	strictRules:
		allRules: false
		booleansInConditions: false	# TODO pass
		closureUsesThis: true
		disallowedConstructs: false
		disallowedLooseComparison: false
		matchingInheritedMethodNames: true
		noVariableVariables: true
		numericOperandsInArithmeticOperators: true
		overwriteVariablesWithLoop: true
		requireParentConstructorCall: true
		strictCalls: true
		switchConditionsMatchingType: true
		uselessCast: true
	exceptions:
		check:
			missingCheckedExceptionInThrows: false	# TODO pass
			tooWideThrowType: true
		implicitThrows: false
		checkedExceptionClasses:
			- 'Minz_Exception'
	ignoreErrors:
		# - '#Only booleans are allowed in (a negated boolean|a ternary operator condition|an elseif condition|an if condition|&&|\|\|), (bool|false|int(<[0-9, max]+>)?|true|null|\|)+ given.*#'
includes:
	- vendor/phpstan/phpstan-phpunit/extension.neon
	- vendor/phpstan/phpstan-phpunit/rules.neon
	- vendor/phpstan/phpstan-strict-rules/rules.neon
	# - vendor/phpstan/phpstan/conf/bleedingEdge.neon
