Laravel4、マイグレーション時のコード補完

タグ: Laravel4  

Laravel4でマイグレーション時にSchemaクラスに渡すクロージャーの中で、テーブル変数の保管ができなくて、悩んでいるあなた。ズバッと解決できます。

今回はNetbeansとPHPStormでの方法を紹介します。

IDE Helper

このコード補完だけでしたら、実はコード補完用のPHPファイルを作成してくれるパッケージである、IDE Helperは必要ありません。ですが、他の保管時に便利ですから、使用することをおすすめします。Eclips、NetBeans、PHPStomeなどで利用できます。その他のエディターにも保管の用のパッケージはGitHubを探せば大抵存在しています。

Nebeans

マイグレーションを生成したら、最初にuse文を書きます。use Bluと叩くと、保管でBlueprintクラスが選択されるでしょう。それをEnterで確定しましょう。

use Illuminate\Database\Schema\Blueprint;

次にちょっとしたトリックを使用します。NetBeansの現在の問題点は、クロージャーの引数のタイプに対する補完が効かないことです。そこで、up()メソッドの引数として、ダミーで宣言してしまいます。

...
    public function up( Blueprint $table = null )
    {
            Schema::create('table_name', function ($table){
                //
            });
    }
....

upの引数とcreateの第2引数であるクロージャーで指定する引数は同じ名前にしておきます。これで$table->と叩けば、メソッドの補完が現れますよ。

PHPStormの場合

PHPStormでは、クロージャーの引数に対しても補完が動作するため、手間は一つ少ないです。まず、use Blと叩きましょう。Netbeansのように一つに絞りきれませんが、第一候補としてBlueprintクラスが上がっています。Enterで確定しましょう。

続いてクロージャーの引数に直接タイプヒントBlueprintを指定します。

...
use Illuminate\Database\Schema\Blueprint;

class CreateTest extends Migration {

    public function up()
    {
        Schema::create('table_name', function(Blueprint $table){
                //
            });
        }
...

後はこれで、$this->でメソッドの補完が動作します。