Help us understand the problem. What is going on with this article?

PHP で未使用の use import を削除する方法

方法1: PhpStorm の整形機能を使う

IDE の PhpStorm を使う場合、メニューバーの Code メニューの中にある Show Reformat File Dialog ( ⌥⇧⌘L ) を表示して Optimize imports にチェックを付けて実行すると、未使用の use import を削除できます。

Reformat Code ダイアログ

一度チェックを入れて実行すると次以降は Reformat Code ( ⌥⌘L ) をするだけで削除できるようになります。

追記: コード整形をせずに use 一覧の最適化だけを行いたい場合は Optimize Imports ( ⌃⌥O ) で出来ます。

方法2: PHP-CS-Fixer を使用する

コード整形ツールの PHP-CS-Fixer で整形ルールを設定して実行することでも削除できます。

コマンドラインで実行できるため、PhpStorm 以外のエディタを使っている場合でも削除できます。

PHP-CS-Fixer とは

The PHP Coding Standards Fixer tool fixes most issues in your code when you want to follow the PHP coding standards as defined in the PSR-1 and PSR-2 documents and many more.

ref. https://github.com/FriendsOfPHP/PHP-CS-Fixer/

コーディング規約の PSR-1, PSR-2 に沿ってコードを整形してくれるコマンドラインツールです。

削除するコマンド例

# PHP-CS-Fixer 2.0 以降を使う場合
php-cs-fixer fix target.php --rules=@PSR2,no_unused_imports
# PHP-CS-Fixer 1.x を使う場合
php-cs-fixer fix target.php --level=psr2 --fixers=unused_use 

PSR-2 ( --level=psr2 ) のルールでは未使用 use の削除は行われないため、 --fixers オプションで削除するためのルールを追加しています。

バージョン2.0以降からそのルール名が変更されているため、注意が必要です。

  • 1.x: unused_use
  • 2.0以降: no_unused_imports

PHP ユーザーズグループはいいぞ

この記事の内容は Slack の PHP ユーザーズグループで質問して頂いた情報を元に解決して書かれたものです。多謝。

誰でも参加できるので是非どうぞ。

ymm1x
明日を今日より生きやすく。
https://sousaku-memo.net/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away