LoginSignup
14

More than 5 years have passed since last update.

PhpStormでmethodを分割する方法

Last updated at Posted at 2015-12-18

はじめに

長いメソッドを複数のメソッドに分割する事ってよくありますよね?
引数が多かったりするとなかなか大変だったりしますが、
PhpStormなら簡単にできます!

Before

こんなメソッドがあるとします。


class Hoge
{
    function a($data)
    {
        $test1 = 'test';
        $test2 = 'test';
        $test3 = 'test';
        foreach ($data as $k => $v) {
            $data[$k]['a'] = $test1;
            $data[$k]['b'] = $test2;
            $data[$k]['c'] = $test3;
        }
        return $data;
    }
}

そしてここを別メソッドに切り出したいとします。

        foreach ($data as $k => $v) {
            $data[$k]['a'] = $test1;
            $data[$k]['b'] = $test2;
            $data[$k]['c'] = $test3;
        }

操作方法

  1. 切り出したい箇所を選択
  2. 右クリック->Refactor->Extract->Method (alt + command + M)
    Fullscreen_12_18_15__5_12_PM.png
  3. メソッド名を入力し、「Refactor」
    Extract_Method_and_Circle_php_-_goalous2_-____repos_goalous2_.png

After


class Hoge
{
    function a($data)
    {
        $test1 = 'test';
        $test2 = 'test';
        $test3 = 'test';
        $data = $this->b($data, $test1, $test2, $test3);
        return $data;
    }

    /**
     * @param $data
     * @param $test1
     * @param $test2
     * @param $test3
     *
     * @return mixed
     */
    public function b($data, $test1, $test2, $test3)
    {
        foreach ($data as $k => $v) {
            $data[$k]['a'] = $test1;
            $data[$k]['b'] = $test2;
            $data[$k]['c'] = $test3;
        }
        return $data;
    }
}

おわりに

PhpStormならリファクタリングがものすごい楽です。
他にもメソッド名の一括変更や引数の順番の変更とか色んな事ができます。
是非使ってみてください。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
14