概要
この記事では、drupal-checkというツールを使ってDrupalの非推奨(Deprecated)コードを簡単にチェックする方法を紹介します。
Drupalのバージョンアップ作業前に、カスタムモジュールに非推奨コードはないかなど調べるのに有用です。 VSCodeの拡張機能を導入すれば開発しながらチェックもできます。
*非推奨コード以外にも使用していない変数やPHPDocの不備なども教えてくれます。
前提・紹介環境
- Mac Apple M1
- composer 2.3.10(homebrew)
- PHP 7.4(homebrew)
導入手順
任意の場所で以下のコマンドを実行し、
drupal-checkをインストールします。composer global require mglaman/drupal-checkインストールできていることを確認します。以下のように
drupal-checkがあればOKです。ls ~/.composer/vendor/bindrupal-check neon-lint phpcbf phpcs phpstan phpstan.phar yaml-lint導入完了
使い方
以下のコマンドで実行できます。パスは相対パスでも大丈夫です。
drupal-check {確認したいファイル・ディレクトリへのパス}
使い方例
テストのために、9.4系のDrupalソースを用意します
cd ~/Desktop mkdir drupal-check-test cd drupal-check-test composer create-project drupal/recommended-project:9.4.3 "test-project" cd test-projectexamplesモジュールをインストールします。composer require 'drupal/examples:^3.0'今回は
examplesにあるevents_exampleを教材に、drupal-checkを使用してみます。cd web/modules/contrib/examples/modules/events_example events_example % drupal-check -d src/Event実行結果

↑の画像を説明すると、以下のようになります。
IncidentReportEvent.phpの20行目で、
Drupal\events_example\Event\IncidentReportEventクラスが、非推奨のクラスSymfony\Component\EventDispatcher\Eventを拡張してますよ。 Symfony4.3以降は、代わりにSymfony\Contracts\EventDispatcher\Eventを使用してくださいね。
付録
A. 「PHP Fatal error: Allowed memory size of....」エラーが出る場合
php.iniファイルを編集して、memory limitを増やしましょう。
筆者の環境ではこちら
php -i | grep php.ini
Configuration File (php.ini) Path => /opt/homebrew/etc/php/7.4
Loaded Configuration File => /opt/homebrew/etc/php/7.4/php.ini
vi /opt/homebrew/etc/php/7.4/php.ini
; Maximum amount of memory a script may consume
; http://php.net/memory-limit
memory_limit = 128M
↓
; Maximum amount of memory a script may consume
; http://php.net/memory-limit
memory_limit = 256M
B. VSCodeでdrupal-checkによる非推奨チェックを自動化できる!
以下の拡張機能で導入可能。 設定で、コマンドへのパスを指定してあげる必要があります。
drupal-check - Visual Studio Marketplace

C. drupal-checkを簡単に試せる、Dockerイメージ *筆者未検証
環境構築めんどくさい・とりあえず試したい・ローカル環境を汚したくないという人へ。
skilldlabs/docker-drupal-check - Docker Image | Docker Hub
参考
- 閲覧数 383
コメントを追加