私は複雑なオブジェクト階層を持つ既存のPHPプロジェクトに取り組んでいます。 Netbeansはオートコンプリート機能(これは完璧ではありませんが、多くの場合、十分正確です)のおかげで大きな助けになりました。それらの属性、関係などをすべて覚えていることはほとんど不可能です。 最近、私はvimで遊んでいて、ネットビッチを投げ捨てることを考えていました。私は現在、このスクリプトを使用してい :私は欠けているhttp://www.vim.org/scripts/script.php?script_id=3171VIM php omnicomplete - マルチレベルのオブジェクト階層
ことの一つは、例えば、オブジェクトの複数のレベルのためのオートコンプリートです:
b.php<?php
class A {
/**
* @var B
**/
public $b;
}
a.php
<?php
class B {
/**
* @var C
**/
public $c;
}
c.php
<?php
class C {
/**
* @var D
**/
public $d;
}
ので、それだけで...最初のレベルのために働くことが何とか可能である
$a = new A();
$a-> //omni complete here works fine, it lists "b"
$a->b-> //displays 'b' again, instead of 'c'
test.phpをはvimの中に、この機能を取得しますか?
そうでない場合、どのようにそのようなプロジェクトで自分の道を見つけるのですか?あなたはそれを任意のプロパティ/メソッドを与えるか、またはそれをB()
のインスタンスを作っていなかったので、あなたはVimは任意の有用な完了を提案することを期待してはいけません
public $b;
:
これはPHPでは動作しません。クラスプロパティでオブジェクトを直接インスタンス化することはできません。ほとんどのPHP IDEで動作するので、phpdoc型のヒントを使用しました.ctagsを正しく解析するように設定できるかどうかはわかりません。 – Nevermind
はい。私のコードは正しいPHPではありません。ひどく悪いしかし、それは実際には意図的なものでした.Vimはあなたのコードについて何も理解していないので、 'ctags'はPHPdocのヒントをサポートしていないため、VimでPHPdocヒントを使用する方法はわかりません。あなたが望むものを得るための唯一の方法は、ひどい違法なコードを書くことだと思われます。 – romainl