Автоматизация устаревших вызовов?

Недавно я начал обновлять и повторно выпускать некоторые заброшенные (но еще важные) плагины WordPress. Когда я просматриваю код, исправляя другие ошибки, мои IDE выделяют устаревшие вызовы функций для меня, что является фантастическим!

Я исправляю их немедленно, когда я их нахожу и двигаюсь дальше.

Все, что я не поймаю, вызывается WP_DEBUG логарифмических устаревших звонков или установкой WP_DEBUG в значение true.

Но оба эти подхода крайне неэффективны. С одной, мне нужно фактически открыть файл PHP и вручную просмотреть каждую строку кода, ищущую устаревший вызов. С другой стороны, мне нужно дождаться, когда устаревший вызов будет вызван WP, прежде чем он будет помечен системой.

Есть ли более простой способ или какой-либо инструмент, который я могу использовать, который сканирует через WP плагины и темы и определяет любое использование устаревших функций?

Я был вдохновлен вашим вопросом, чтобы создать плагин, на котором я пинал банк в течение нескольких месяцев. Я называю это Defrecation Checker. По умолчанию он сканирует директории плагинов и тем (рекурсивно) для поиска устаревших функций. Список функций поступает непосредственно из устаревших файлов WP.

Затем он выводит хороший список, включая номер строки, путь к файлу, старую функцию и рекомендуемую функцию для использования на своем месте.

Существует несколько фильтров для добавления пользовательских путей и пользовательских устаревших функций для ваших собственных целей. Вы также можете легко отключить сканирование каталога плагинов / тем.

Вы можете скачать его здесь: http://coderrr.com/deprecation-checker/ (скоро будет на WP.org)

После активации перейдите в меню «Администрирование».

Ehm, плагин Theme Check ? 🙂 Он настроен для тем, но достаточно прост для использования частей:

 require WP_PLUGIN_DIR . '/theme-check/checkbase.php'; $check = new Deprecated(); $path = 'c:\server\www\dev\wp-content\plugins\deprecated.php'; $files = array( $path => php_strip_whitespace( $path ) ); $check->check( $files, array(), array() ); var_dump( $check->getError() ); 

Обратите внимание, что в нем есть списки устаревших функций, жестко запрограммированные, что может быть или не быть достаточным для ваших нужд.

Ну, самый длинный бит собирается собирать список всех устаревших функций. У WordPress.org есть страница для этого здесь , но так как это может быть или не быть актуальным, я бы предложил пройти через 5 перечисленных файлов и найти «функцию», чтобы получить лучший список. После того, как у вас есть список вместе в текстовом файле (по одному имени функции для каждой строки), поместите этот текстовый файл в / wp-контент и запустите эту команду из этого каталога (при условии, что * nix и ssh) – grep -rnf deprecatedfunctionlist.txt ./ > files.txt Это будет рекурсивно искать / wp-контент напрямую и выводить текстовый файл в этом каталоге, в котором перечислены файлы и строки (с номерами строк), на которых эти функции отображаются. Таким образом вы можете точно определить, какие функции находятся в файлах. Я уверен, что есть более элегантное решение, но это должно заставить вас начать!

Поскольку Theme Checker больше не поддерживается, мы можем использовать новый плагин «Логарифмически устаревшие уведомления» .

После установки просто перейдите в «Инструменты -> Устаревшие звонки»,