Skip to content

コードのリファクタリング

時にはメソッドやクラスを移動するなど、コードベースに大きな変更を加えたいことがあります。

Psalmにはリファクタリングツールがあり、vendor/bin/psalm-refactorまたはvendor/bin/psalm --refactorの後に適切なコマンドを付けてアクセスできます。

あるネームスペースから別のネームスペースにすべてのクラスを移動する

vendor/bin/psalm-refactor --move "Ns1\*" --into "Some\Other\Namespace"

これにより、Ns1内のすべてのクラス(例:Ns1\FooNs1\Baz)を指定されたネームスペースに移動します。必要に応じてファイルも移動されます。

コードのリファクタリング

時にはメソッドやクラスを移動するなど、コードベースに大きな変更を加えたいことがあります。

Psalmにはリファクタリングツールがあり、vendor/bin/psalm-refactorまたはvendor/bin/psalm --refactorの後に適切なコマンドを付けてアクセスできます。

あるネームスペースから別のネームスペースにすべてのクラスを移動する

vendor/bin/psalm-refactor --move "Ns1\*" --into "Some\Other\Namespace"

これにより、Ns1内のすべてのクラス(例:Ns1\FooNs1\Baz)を指定されたネームスペースに移動します。必要に応じてファイルも移動されます。

ネームスペース間でクラスを移動する

vendor/bin/psalm-refactor --move "Ns1\Foo" --into "Ns2"

これは、クラスNs1\FooをネームスペースNs2に移動するようPsalmに指示します。そのため、Ns1\Fooへの参照はすべてNs2\Fooになります。必要に応じてファイルも移動されます。

クラスの移動と名前変更

vendor/bin/psalm-refactor --rename "Ns1\Foo" --to "Ns2\Bar\Baz"

これは、クラスNs1\FooをネームスペースNs2\Barに移動し、名前をBazに変更するようPsalmに指示します。そのため、Ns1\Fooへの参照はすべてNs2\Bar\Bazになります。必要に応じてファイルも移動されます。

クラス間でメソッドを移動する

vendor/bin/psalm-refactor --move "Ns1\Foo::bar" --into "Ns2\Baz"

これは、Ns1\Foo内のbarという名前のメソッドをクラスNs2\Bazに移動するようPsalmに指示します。そのため、Ns1\Foo::barへの参照はすべてNs2\Baz::barになります。現在のところ、Psalmは任意のクラス間で静的メソッドを移動することを許可し、インスタンスメソッドをそのインスタンスの子クラスに移動することを許可しています。

メソッドの移動と名前変更

vendor/bin/psalm-refactor --rename "Ns1\Foo::bar" --to "Ns2\Baz::bat"

これは、メソッドNs1\Foo::barをクラスNs2\Bazに移動し、名前をbatに変更するようPsalmに指示します。そのため、Ns1\Foo::barへの参照はすべてNs2\Baz::batになります。

ユーザーノート