<?xml version="1.0"?>
<ruleset>
    <arg name="basepath" value="."/>
    <arg name="extensions" value="php"/>
    <arg name="parallel" value="80"/>
    <arg name="cache" value=".phpcs-cache"/>
    <arg name="colors"/>

    <!-- Ignore warnings, show progress of the run and show sniff names -->
    <arg value="nps"/>

    <!-- Directories to be checked -->
    <file>src</file>
    <file>tests</file>

    <rule ref="Doctrine">
        <exclude name="SlevomatCodingStandard.TypeHints.DeclareStrictTypes.DeclareStrictTypesMissing"/>
        <exclude name="SlevomatCodingStandard.TypeHints.NullableTypeForNullDefaultValue.NullabilitySymbolRequired"/>
        <exclude name="SlevomatCodingStandard.Functions.StaticClosure.ClosureNotStatic"/>
        <exclude name="SlevomatCodingStandard.TypeHints.TypeHintDeclaration.MissingReturnTypeHint"/>
        <exclude name="SlevomatCodingStandard.TypeHints.TypeHintDeclaration.MissingParameterTypeHint"/>
    </rule>

    <rule ref="Generic.PHP.ForbiddenFunctions">
        <properties>
            <property name="forbiddenFunctions" type="array">
                <element key="str_split" value="mb_str_split"/>
                <element key="strlen" value="mb_strlen"/>
                <element key="strpos" value="mb_strpos"/>
                <element key="strrpos" value="mb_strrpos"/>
                <element key="substr" value="mb_substr"/>
                <element key="strtolower" value="mb_strtolower"/>
                <element key="strtoupper" value="mb_strtoupper"/>
                <element key="stripos" value="mb_stripos"/>
                <element key="strripos" value="mb_strripos"/>
                <element key="strstr" value="mb_strstr"/>
                <element key="stristr" value="mb_stristr"/>
                <element key="strrchr" value="mb_strrchr"/>
                <element key="substr_count" value="mb_substr_count"/>
            </property>
        </properties>
    </rule>
</ruleset>
