Drupalの非推奨コードをチェックしてくれる分析ツールの紹介

  •  
 
TaKo に投稿

タグ

概要

この記事では、drupal-checkというツールを使ってDrupalの非推奨(Deprecated)コードを簡単にチェックする方法を紹介します。

Drupalのバージョンアップ作業前に、カスタムモジュールに非推奨コードはないかなど調べるのに有用です。 VSCodeの拡張機能を導入すれば開発しながらチェックもできます。

*非推奨コード以外にも使用していない変数やPHPDocの不備なども教えてくれます。

前提・紹介環境

  • Mac Apple M1
  • composer 2.3.10(homebrew)
  • PHP 7.4(homebrew)

導入手順

  1. 任意の場所で以下のコマンドを実行し、drupal-checkをインストールします。

    composer global require mglaman/drupal-check
    
  2. インストールできていることを確認します。以下のようにdrupal-checkがあればOKです。

    ls ~/.composer/vendor/bin 
    
    drupal-check neon-lint phpcbf phpcs phpstan phpstan.phar yaml-lint
    
  3. 導入完了

使い方

以下のコマンドで実行できます。パスは相対パスでも大丈夫です。

drupal-check {確認したいファイル・ディレクトリへのパス}

使い方例

  1. テストのために、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-project
    
  2. examplesモジュールをインストールします。

    composer require 'drupal/examples:^3.0'
    
  3. 今回は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

vscodeの拡張機能

C. drupal-checkを簡単に試せる、Dockerイメージ *筆者未検証

環境構築めんどくさい・とりあえず試したい・ローカル環境を汚したくないという人へ。

skilldlabs/docker-drupal-check - Docker Image | Docker Hub

参考

コメントを追加

プレーンテキスト

  • HTMLタグは利用できません。
  • 行と段落は自動的に折り返されます。
  • ウェブページのアドレスとメールアドレスは自動的にリンクに変換されます。
CAPTCHA
この質問はあなたが人間の訪問者であるかどうかをテストし、自動化されたスパム送信を防ぐためのものです。
画像
VSCodeの拡張機能:drupal-check
コマンドの実行結果