Борюсь с добавлением расширений, отличных от php, в мой искатель. Сделал долгий поиск в Google, но ничего не нашел. Нашел, но не совсем понял: Как использовать другие расширения файлов в php-cs-fixer, например .ctp?
Вот что у меня есть:
<?php
$finder = PhpCsFixer\Finder::create()
->notPath('path/to/some/file.inc')
->notPath('path/to/some/file.class')
->in(__DIR__)
->name('*.php')
->name('*.inc')
->name('*.class');
return PhpCsFixer\Config::create()
->setRules(
array(
'Rule 1' => true,
...
'Rule n' => true,
)
)
->setFinder($finder);
Мне бы хотелось, чтобы он работал с файлами * .inc и * .class, но он, похоже, выбирает только файлы * .php.
Есть какие-нибудь подсказки к тому, что я, возможно, пропустил?
PS
Я забыл добавить, что попытка одного ->name('/(\.php|\.inc|\.class)$/'); не имеет значения. Он по-прежнему выбирает только файлы * .php.
Кроме того, вместо того, чтобы голосовать за меня без объяснения причин, дайте мне окончательный ответ ... Я что-то делаю неправильно? Если так, укажите мне на это.
@ Smaïne, пожалуйста, посмотрите обновленный запрос. Я уже тестировал выкройку.






Ваша проблема описана не полностью, воспроизвести невозможно.
ker@dus:~/github/PHP-CS-Fixer λ cat .php_cs.dist
<?php
$finder = PhpCsFixer\Finder::create()
->in(__DIR__ . '/example')
->name('*.inc')
;
return PhpCsFixer\Config::create()
->setRules([
'@Symfony' => true,
])
->setFinder($finder)
;
ker@dus:~/github/PHP-CS-Fixer λ ls -al example/
total 16
drwxr-xr-x 2 keradus keradus 4096 cze 18 13:20 .
drwxr-xr-x 11 keradus keradus 4096 cze 18 10:20 ..
-rw-rw-r-- 1 keradus keradus 1550 cze 17 12:00 FileReader.php
-rw-rw-r-- 1 keradus keradus 1507 cze 18 13:20 FileRemoval.inc
ker@dus:~/github/PHP-CS-Fixer λ php php-cs-fixer fix -vv --dry-run --diff --diff-format=udiff
Loaded config default from "/home/keradus/github/PHP-CS-Fixer/.php_cs.dist".
.F
Legend: ?-unknown, I-invalid file syntax, file ignored, S-Skipped, .-no changes, F-fixed, E-error
1) example/FileRemoval.inc (braces)
---------- begin diff ----------
--- Original
+++ New
@@ -29,7 +29,8 @@
*/
private $files = [];
- public function __construct() {
+ public function __construct()
+ {
register_shutdown_function([$this, 'clean']);
}
----------- end diff -----------
Checked all files in 0.027 seconds, 12.000 MB memory used
Исправлен файл *.inc.
После отличной поддержки на странице проекта gitter: https://gitter.im/PHP-CS-Fixer/Lobby выяснилось, что проблема заключалась в том, что способ, которым я вызывал вещи в командной строке, перезаписывал информацию о пути в моем файле конфигурации.
Подсказкой было сообщение CLI, которое читало Paths from configuration file have been overridden by paths provided as command arguments.
Моя первоначальная команда была ...
php php-cs-fixer fix /path/to/project/folder --config /path/to/config/file/.php_cs.dist
Два варианта, которые следовало использовать:
Пропустите /path/to/project/folder
Правильная команда = php php-cs-fixer fix --config /path/to/config/file/.php_cs.dist. По словам разработчиков, это может иметь недостаток в том, что нельзя будет запустить инструмент с подпути корневого проекта.
Добавьте флаг -path-mode=intersectionflag в оператор CLI, чтобы все было удобно друг с другом. Правильная команда = php php-cs-fixer fix /path/to/project/folder --config /path/to/config/file/.php_cs.dist --path-mode=intersection
Вы пытались передать Regex вместо 3 вызовов
->name(). Может быть, искатель просто оставит первый вызов для имени метода? метод принимает шаблон проверяет это, чтобы увидеть ...