cake.vimでModelのテーブル構造を確認する

cake.vimのバージョン2.6で、モデルのテーブル定義を瞬時に確認できるよう、:Cdescコマンドを追加してみました。
(cake.vimCakePHPのController、Model、View間の移動を少し楽にするプラグインです。コチラのエントリーで使い方をまとめてみました。)

キャプチャ

こんな感じです。

※上のキャプチャには、PHPRedmineCandyCaneのIssuesControllerをつかわせていただきました。
 カーソルは$usesの'User'上にいて、usersテーブルのテーブル定義を下に開いています。

使い方

内部的にdbext.vimのコマンドを実行しているので、dbext.vimをインストールします。


次に、.vimrcなどにDBの接続設定を書きます。
パスワードが@askになっているは、べた書きせず、コマンドを実行してDBに接続するときに入力するためです。

" let g:dbext_default_type         = 'MYSQL'
" let g:dbext_default_user         = 'root'
" let g:dbext_default_password     = '@ask'
" let g:dbext_default_host         = 'localhost'
" let g:dbext_default_dbname       = 'candycane'
" let g:dbext_default_buffer_lines = '20'

上記の設定はcake.vim2.7以降は必要なくなりました。自動的にモデルとdatabase.phpをパースして、接続するようにしました。



そしてコマンドモードで、以下のように{model-name}の箇所にモデル名を指定すると、モデルの使っているテーブル定義が引けます。
引数を入力するときにTABを押すと、モデル名の補完できます。

:Cdesc {model-name}

引数を指定しないでエンターを押すと、カーソル配下の単語が:Cdescの対象となります。


キーバインドを設定しておくと、楽です。

nnoremap <Space>cd :<C-u>Cdesc

内部的に呼んでいるdbext.vimについて

dbext.vimvimからSQLを実行できる、凄いプラグインです。

dbext.vim


dbext.vimの使い方についてはコチラで詳しく解説されています。

課題

DB接続の設定しなくてもdatabase.phpをパースして自動でやるのと、
Modelの$useTablesが設定されている場合にも対応できたらなぁ。。。