<?xml version="1.0" encoding="UTF-8"?>
<ruleset name="FreshRSS Ruleset">
	<description>Created with the PHP Coding Standard Generator. https://edorian.github.com/php-coding-standard-generator/</description>
	<arg name="extensions" value="php,phtml,css,js"/>
	<arg name="tab-width" value="4"/>
	<exclude-pattern>./.git/</exclude-pattern>
	<exclude-pattern>./lib/SimplePie/</exclude-pattern>
	<exclude-pattern>./lib/marienfressinaud/</exclude-pattern>
	<exclude-pattern>./lib/phpgt/</exclude-pattern>
	<exclude-pattern>./lib/phpmailer/</exclude-pattern>
	<exclude-pattern>./lib/http-conditional.php</exclude-pattern>
	<exclude-pattern>./node_modules/</exclude-pattern>
	<exclude-pattern>./data/config.php</exclude-pattern>
	<exclude-pattern>./data/update.php</exclude-pattern>
	<exclude-pattern>./data/users/*/config.php</exclude-pattern>
	<exclude-pattern>./extensions/</exclude-pattern>
	<exclude-pattern>./p/scripts/vendor/</exclude-pattern>
	<exclude-pattern>./vendor/</exclude-pattern>
	<exclude-pattern>*.min.js$</exclude-pattern>
	<!-- Duplicate class names are not allowed -->
	<rule ref="Generic.Classes.DuplicateClassName"/>
	<!-- Statements must not be empty -->
	<rule ref="Generic.CodeAnalysis.EmptyStatement"/>
	<!-- Unconditional if-statements are not allowed -->
	<rule ref="Generic.CodeAnalysis.UnconditionalIfStatement"/>
	<!-- Do not use final statements inside final classes -->
	<rule ref="Generic.CodeAnalysis.UnnecessaryFinalModifier"/>
	<!-- Do not override methods to call their parent -->
	<rule ref="Generic.CodeAnalysis.UselessOverridingMethod"/>
	<!-- Maximum line length -->
	<rule ref="Generic.Files.LineLength">
		<!-- For language strings maximum line lengths make little sense. -->
		<exclude-pattern>./app/i18n/</exclude-pattern>
		<!-- Don’t enforce line length on the HTML; the point is to improve legibility, not reduce it -->
		<exclude-pattern>*.phtml$</exclude-pattern>
		<properties>
			<property name="lineLimit" value="165"/>
			<property name="absoluteLineLimit" value="190"/>
		</properties>
	</rule>
	<!-- When calling a function: -->
	<!-- Do not add a space before the opening parenthesis -->
	<!-- Do not add a space after the opening parenthesis -->
	<!-- Do not add a space before the closing parenthesis -->
	<!-- Do not add a space before a comma -->
	<!-- Add a space after a comma -->
	<rule ref="Generic.Functions.FunctionCallArgumentSpacing"/>
	<rule ref="Generic.PHP.DisallowShortOpenTag">
		<exclude name="Generic.PHP.DisallowShortOpenTag.EchoFound"/>
	</rule>
	<rule ref="Generic.PHP.DeprecatedFunctions" />
	<!-- Use UPPERCARE for constants -->
	<rule ref="Generic.NamingConventions.UpperCaseConstantName"/>
	<!-- Use lowercase for 'true', 'false' and 'null' -->
	<rule ref="Generic.PHP.LowerCaseConstant"/>
	<!-- Use a single string instead of concatenating -->
	<rule ref="Generic.Strings.UnnecessaryStringConcat">
		<properties>
			<!-- Allow string concatenating across multiple lines -->
			<property name="allowMultiline" value="true"/>
		</properties>
	</rule>
	<!-- Use tabs for indentation -->
	<rule ref="Generic.WhiteSpace.DisallowSpaceIndent"/>
	<!-- Parameters with default values must appear last in functions -->
	<rule ref="PEAR.Functions.ValidDefaultValue"/>
	<!-- Use 'elseif' instead of 'else if' -->
	<rule ref="PSR2.ControlStructures.ElseIfDeclaration"/>
	<!-- Do not add spaces after opening or before closing bracket -->
	<rule ref="PSR2.ControlStructures.ControlStructureSpacing"/>
	<!-- Add a new line at the end of a file -->
	<rule ref="PSR2.Files.EndFileNewline"/>
	<!-- Use Unix newlines -->
	<rule ref="Generic.Files.LineEndings">
		<properties>
			<property name="eolChar" value="\n" />
		</properties>
	</rule>
	<!-- Add space after closing parenthesis -->
	<!-- Add body into new line -->
	<!-- Close body in new line -->
	<rule ref="Squiz.ControlStructures.ControlSignature">
		<!-- No space after keyword (before opening parenthesis) -->
		<exclude name="Squiz.ControlStructures.ControlSignature.SpaceAfterKeyword"/>
	</rule>
	<!-- When declaring a function: -->
	<!-- Do not add a space before a comma -->
	<!-- Add a space after a comma -->
	<!-- Add a space before and after an equal sign -->
	<rule ref="Squiz.Functions.FunctionDeclarationArgumentSpacing">
		<properties>
			<property name="equalsSpacing" value="1"/>
		</properties>
	</rule>
	<!-- Do not add spaces when casting -->
	<rule ref="Squiz.WhiteSpace.CastSpacing"/>
	<!-- Operators must have a space around them -->
	<rule ref="Squiz.WhiteSpace.OperatorSpacing">
		<properties>
			<property name="ignoreNewlines" value="true" />
		</properties>
	</rule>
	<!-- Do not add a whitespace before a semicolon -->
	<rule ref="Squiz.WhiteSpace.SemicolonSpacing"/>
	<!-- Do not add whitespace at start or end of a file or end of a line -->
	<rule ref="Squiz.WhiteSpace.SuperfluousWhitespace"/>
	<!-- Expected space after closing parenthesis -->
	<rule ref="Squiz.ControlStructures.ControlSignature.SpaceAfterCloseParenthesis">
		<exclude-pattern>.phtml$</exclude-pattern>
	</rule>
	<!-- Opening brace on same line as function declaration -->
	<rule ref="Generic.Functions.OpeningFunctionBraceKernighanRitchie" />
	<!-- Newline required after opening brace -->
	<rule ref="Squiz.ControlStructures.ControlSignature.NewlineAfterOpenBrace">
		<exclude-pattern>.phtml$</exclude-pattern>
		<exclude-pattern>.js$</exclude-pattern>
	</rule>
	<!-- No PHP code was found in this file -->
	<rule ref="Internal.NoCodeFound">
		<exclude-pattern>.phtml$</exclude-pattern>
	</rule>
</ruleset>
