5

エラーのあるファイルのみを出力しながら、現在の (再帰的な) ディレクトリ内のすべてのファイルをリントし、変数を 1 に割り当てて、リントが終了した後に使用するようにします。

#!/bin/bash

lint_failed=0
find . -path ./vendor -prune -o -name '*.php' | parallel -j 4 sh -c 'php -l {} || echo -e "[FAIL] {}" && lint_failed=1';

if [ "$lint_failed" -eq "1" ]; then
    exit 1
fi

[失敗] ./app/Model/Example.php

上記のコードはエラーを検出しませんが、実行php -l ./app/Model/Example.phpするとエラーが返されます。

4

2 に答える 2

1

PHP Parallel Lintツールを使用すると、エラーのあるファイルのみを出力しながら並列ジョブを実行することで、PHP ファイルの構文をより高速にチェックし、より洗練された出力を得ることができます。

使用例:

./bin/parallel-lint --exclude app --exclude vendor .

または Ant を使用してbuild.xml:

<condition property="parallel-lint" value="${basedir}/bin/parallel-lint.bat" else="${basedir}/bin/parallel-lint">
    <os family="windows"/>
</condition>

<target name="parallel-lint" description="Run PHP parallel lint">
    <exec executable="${parallel-lint}" failonerror="true">
        <arg line="--exclude" />
        <arg path="${basedir}/app/" />
        <arg line="--exclude" />
        <arg path="${basedir}/vendor/" />
        <arg path="${basedir}" />
    </exec>
</target>
于 2018-01-19T21:26:03.770 に答える