<?xml version="1.0"?>
<ruleset>
    <description>Engelsystem PHP coding standard</description>

    <file>config</file>
    <file>db</file>
    <file>includes</file>
    <file>public/index.php</file>
    <file>src</file>
    <file>tests</file>
    <exclude-pattern>/config/config.php</exclude-pattern>

    <rule ref="PSR12" />
    <rule ref="SlevomatCodingStandard.Namespaces.UnusedUses">
        <properties>
            <property name="searchAnnotations" value="true"/>
        </properties>
    </rule>
    <rule ref="SlevomatCodingStandard.Variables.UnusedVariable">
        <properties>
            <property name="ignoreUnusedValuesWhenOnlyKeysAreUsedInForeach" value="true" />
        </properties>
    </rule>
    <rule ref="Generic.Files.LineLength.TooLong">
        <exclude-pattern>/includes</exclude-pattern>
    </rule>
    <rule ref="SlevomatCodingStandard.TypeHints.ParameterTypeHint">
        <exclude-pattern>/includes</exclude-pattern>
        <exclude name="SlevomatCodingStandard.TypeHints.ParameterTypeHint.MissingTraversableTypeHintSpecification" />
    </rule>
    <rule ref="SlevomatCodingStandard.TypeHints.ReturnTypeHint">
        <exclude-pattern>/includes</exclude-pattern>
        <exclude name="SlevomatCodingStandard.TypeHints.ReturnTypeHint.MissingTraversableTypeHintSpecification" />
    </rule>
    <rule ref="SlevomatCodingStandard.TypeHints.PropertyTypeHint">
        <exclude-pattern>/includes</exclude-pattern>
        <exclude name="SlevomatCodingStandard.TypeHints.PropertyTypeHint.MissingTraversableTypeHintSpecification" />
    </rule>
    <rule ref="SlevomatCodingStandard.Classes.RequireConstructorPropertyPromotion" />
    <rule ref="SlevomatCodingStandard.Commenting.EmptyComment" />
    <rule ref="SlevomatCodingStandard.Commenting.UselessFunctionDocComment" />
    <rule ref="Generic.Formatting.SpaceAfterCast" />
    <rule ref="SlevomatCodingStandard.Arrays.TrailingArrayComma"/>
    <rule ref="SlevomatCodingStandard.Arrays.SingleLineArrayWhitespace"/>
    <rule ref="Squiz.Strings.DoubleQuoteUsage" />
    <rule ref="SlevomatCodingStandard.TypeHints.DeclareStrictTypes">
        <exclude-pattern>/includes</exclude-pattern>
        <properties>
            <property name="spacesCountAroundEqualsSign" value="0" />
        </properties>
    </rule>
</ruleset>
