2

複雑なオブジェクト階層を持つ既存の php プロジェクトに取り組んでいます。オートコンプリート機能があるため、Netbeans はここで大きな助けになります (完全ではありませんが、多くの場合、十分に正確です)。これらすべての属性、関係などを覚えておくことはほぼ不可能です。

しかし、netbeans は Java で書かれているため、遅い、肥大化するなどの理由があります。現在、このスクリプトを使用しています: http://www.vim.org/scripts/script.php?script_id=3171

私が見逃していることの 1 つは、複数レベルのオブジェクトのオートコンプリートです。

a.php

<?php
class A {

  /**
  * @var B
  **/
  public $b;

}

b.php

<?php
class B {

  /**
  * @var C
  **/
  public $c;

}

c.php

<?php
class C {

  /**
  * @var D
  **/
  public $d;

}

test.php

$a = new A();
$a-> //omni complete here works fine, it lists "b"
$a->b-> //displays 'b' again, instead of 'c'

したがって、それは最初のレベルでのみ機能します.vimでこの機能を取得することは可能ですか?

そうでない場合、そのようなプロジェクトでどのように道を見つけますか?

4

1 に答える 1

2

パブリックプロパティは空の変数にすぎません。

public $b;

プロパティ/メソッドを指定したり、のインスタンスにしたりしなかったためB()、Vimがの有用な補完を提案することを期待するべきではありません$b->

と:

a.php、

<?php
class A {
  public $b = new B();   
}

b.php、

<?php
class B {
  public $c = new C();
}

c.php

<?php
class C {
  public $c;
}

およびtest.php

<?php
  $a = new A();
  $a-> // proposes b
  $a->b-> //proposes b

  $b = $a-> // proposes b
  $b = $a->b;
  $c = $b-> // proposes c
  $c = $b->c;
  $d = $c-> // proposes d

つまり…PHP補完プラグインはおそらく少し制限されていますが(当然のことながら、Vimはテキストエディターであり、IDEではありません)、より一般的な(そして読みやすい)コーディングスタイルに固執すれば機能するようです。

繰り返しますが、Vimは単なるテキストエディタです。非常に強力なものですが、それでもテキストエディタにすぎません。肥大化したIDEが仕事に適したツールである場合がありますが、それがどれほど遅いとしても、Vimが好きです。

于 2012-04-09T13:51:43.480 に答える