<?xml version="1.0"?>
<ruleset name="Apache_Thrift">
    <description>The coding standard for thrift.</description>

    <file>lib/php/lib</file>
    <file>lib/php/test</file>
    <exclude-pattern>lib/php/test/packages/*</exclude-pattern>

    <arg name="basepath" value="."/>
    <arg name="colors" />
    <arg name="parallel" value="4" />

    <rule ref="PSR2">
        <exclude name="PSR2.Methods.MethodDeclaration.Underscore"/>
        <exclude name="PSR2.Classes.PropertyDeclaration.Underscore"/>
    </rule>

    <rule ref="PSR1.Files.SideEffects">
        <exclude-pattern>lib/php/test/*</exclude-pattern>
    </rule>
    <rule ref="Generic.Files.LineLength">
        <exclude-pattern>lib/php/test/*</exclude-pattern>
    </rule>

</ruleset>
