Я пытаюсь использовать PHPCompatibility стандарт для PHP CodeSniffer проверить определенный набор файлов.
Я сейчас пользуюсь find
сделать это.
find ./path1 ./path2 ./path3 ./path4 \
-type f \
-name '*.php' \
-not -path './path4/dontwantthis/*' \
-exec ./vendor/bin/phpcs \
--standard=PHPCompatibility --runtime-set testVersion 5.6 {} \;
Однако это действительно медленно и неэффективно, потому что запуск сценария выполняется для каждого отдельного файла.
Скрипт phpcs принимает путь как ./vendor/bin/phpcs --standard=PHPCompatibility --runtime-set testVersion 5.6 <path-of-your-php-files>
и я хотел бы найти способ воспроизвести find
материал с шаблоном вместо <path-of-your-php-files>
Одной из основных проблем, с которыми я столкнулся, было ./path4/*.php
в то же время исключая ./path4/dontwantthis/*
Конец вашего -exec
вариант с +
вместо \;
, Что говорит find
выполнить команду один раз со всеми именами файлов, а не отдельно для каждого имени файла.
find ./path1 ./path2 ./path3 ./path4 \
-type f \
-name '*.php' \
-not -path './path4/dontwantthis/*' \
-exec ./vendor/bin/phpcs \
--standard=PHPCompatibility --runtime-set testVersion 5.6 {} +
Других решений пока нет …