はじめに
PhpStormでディレクトリをRefactor/Renameする際に、基本的にはnamespaceも一緒に変更されるはずなのですが、上手くいかない時があります。
発生環境
Windows10 Pro
PhpStorm 2018.2
Windows8
PhpStorm 2017.2
現象
namespaceを追従して変更出来る場合、下記のようなダイアログが表示されます。

ところが、ある条件を満たすと下記のようにnamespaceが追従しない状態となります。

原因?
Rename対象ディレクトリ配下に、PHPファイルが含まれていない(namespaceがソース上に存在しない状態になる?)と発生するようです。
例として、下記のディレクトリ構成でFoo
をRenameするとnamespaceを認識してくれますが、
App\
Foo\
FooClass.php (namespace = App\Foo)
Bar\
BarClass.php (namespace = App\Foo\Bar)
上記からFooClass.phpを削除して下記の構成でFoo
をRenameするとnamespaceを認識してくれませんでした。
App\
Foo\
Bar\
BarClass.php (namespace = App\Foo\Bar)
なお、指定したディレクトリの子ディレクトリに関してはPHPファイルが存在しない(namespaceの定義が無い)状態でも問題無いようです。
App\
Foo\
FooClass.php (namespace = App\Foo)
Bar\
BarClass.php (namespace = App\Foo\Bar)
Hoge\
Fuga\
FugaClass.php (namespace = App\Foo\Hoge\Fuga)
対応方法
Rename対象ディレクトリに一時的にダミークラスを作ってRename後に削除することで対応可能でした。
2017.2及び、2018.2の両方で発生しているので、バグではなくそういう仕様なのかもしれません。