12

config.php という名前のファイルがあり、config.php を含む他のファイルがあります。ファイルの 1 つを編集するときに、config.php のオブジェクトを使用すると、オブジェクトの名前が自動補完されます。しかし、このオブジェクトの関数または変数を (-> で) 見ようとすると、オートコンプリートはありません。それを機能させる方法はありますか?

注: オブジェクト定義の前に /* @var $myObject myType */ を config.php に追加しました。config.php を含むすべてのファイルにその行を追加する必要がありますか? それは正しくないようです。

追記:サンプル追加。

ディレクトリ;

  • config.php
  • index.php
  • lib/test.class.php

config.php;

<?php
define('ABSPATH', dirname(__FILE__));
include_once ABSPATH.'/lib/test.class.php';

/* @var $TestObj test */
$TestObj = new test();

// auto complete works here.
$TestObj->someFunction();
?>

index.php;

<?php
include_once 'config.php';

// here, auto completes object name
// not lists functions or variables after ->
$TestObj->someFunction();
?>

lib/test.class.php;

<?php
class test {
    public $var1;

    public function someFunction() {
        echo 'I am some function.';
        return 0;
    }
}
?>

/* @var $TestObj test */ を index.php に追加すると機能しますが、そのようなファイルがたくさんあるため、すべてのファイルにその行を追加するよりも良い方法があるはずです。

4

3 に答える 3

8

プロジェクトのすべてのファイルがプロジェクトのインクルードパスにあることを確認してください(プロジェクト->プロパティ->インクルードパスを右クリックします)。通常、NetBeans設定で構成する「グローバルインクルードパス」のみがあります(たとえば、PEARディレクトリを指すように)。オートコンプリートが必要なソースコードを含むすべてのディレクトリをこのインクルードパスに追加します。ヒント:このインクルードパスは、PHP自体で使用されるinclude_pathとは何の関係もありません。

また、cientコードでヒントを使用する代わりに:

/* @var $TestObj test */
$TestObj->...

ソースにもう少しapidocを与える必要があります。例:

<?php
class test {
    /**
     * @var SomeClass
     */
    public $var1;

    /**
     * @return int
     */
    public function someFunction() {
        echo 'I am some function.';
        return 0;
    }
}

PHPの動的な性質のため、IDEはこの情報を実際に使用して正しいヒントを提供します。

于 2012-04-24T09:29:51.527 に答える
8

[ツール] -> [オプション] -> 上部の PHP アイコンをクリック -> [全般] タブ -> [グローバル インクルード パス] を検索 -> [フォルダーの追加] ->

if(onLinux) { /var/www を選択。} if(onWindows) { c:\path_to_htdocs などを選択します。}

ああ、今日はプログラミングが多すぎる.. :)

私にとっては、これでオートコンプリートが修復され、Ctrl キーを押しながらメソッド呼び出しがクリックされました。

于 2014-10-04T19:36:51.400 に答える
3

netbeanstools->options からエディターの選択に移動し、コード補完から言語セクションの php を選択します。これによりメニューが展開され、セクションが表示されますCode Completion for Class Methods

そのセクションのチェックボックスを選択して、その構成を設定します。 ここに画像の説明を入力

私はこれを正しく理解したと思います。私もネットビーンズを使用しており、ネットビーンズの設定を変更するとオートコンプリートできます。

于 2012-04-20T18:43:47.187 に答える