Получение расширений файлов, отличных от PHP, в Symfony Finder / PHP-CS-Fixer

Борюсь с добавлением расширений, отличных от 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.

Кроме того, вместо того, чтобы голосовать за меня без объяснения причин, дайте мне окончательный ответ ... Я что-то делаю неправильно? Если так, укажите мне на это.

Вы пытались передать Regex вместо 3 вызовов ->name(). Может быть, искатель просто оставит первый вызов для имени метода? метод принимает шаблон проверяет это, чтобы увидеть ...

Smaïne 18.06.2018 02:29

@ Smaïne, пожалуйста, посмотрите обновленный запрос. Я уже тестировал выкройку.

Dayo 18.06.2018 08:24
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
2
590
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Ваша проблема описана не полностью, воспроизвести невозможно.

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.

** ИЗМЕНИТЬ OP **

После отличной поддержки на странице проекта 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

Два варианта, которые следовало использовать:

  1. Пропустите /path/to/project/folder Правильная команда = php php-cs-fixer fix --config /path/to/config/file/.php_cs.dist. По словам разработчиков, это может иметь недостаток в том, что нельзя будет запустить инструмент с подпути корневого проекта.

  2. Добавьте флаг -path-mode=intersectionflag в оператор CLI, чтобы все было удобно друг с другом. Правильная команда = php php-cs-fixer fix /path/to/project/folder --config /path/to/config/file/.php_cs.dist --path-mode=intersection

Другие вопросы по теме