9

Zend Studio for Eclipse で動作する codeigniter のライブラリのオートコンプリートとクリック フォー リファレンス (それが何であれ) を取得する良い方法を探しています。

たとえば、 $this->load->library('dx_auth'); を実行すると、$this->dx_auth->get_user_id();

zend studioはそれが何であるかを知りません..

それを行うには、この種のハックな方法があります(以下のソースを参照)が、より良い方法があるはずだと感じています..

誰にもアイデアはありますか?

// All of these are added so I get real auto complete
// I don't have to worry about it causing any problems with deployment
// as this file never gets called as I'm in PHP5 mode

// Core CI libraries
$config = new CI_Config();
$db = new CI_DB_active_record();
$email = new CI_Email();
$form_validation = new CI_Form_validation();
$input = new CI_Input();
$load = new CI_Loader();
$router = new CI_Router();
$session = new CI_Session();
$table = new CI_Table();
$unit = new CI_Unit_test();
$uri = new CI_URI();
4

4 に答える 4

7

CI のライブラリ パスをインクルード パスとしてプロジェクトに追加します。

  1. PHP Explorerでプロジェクトを開き、インクルード パスを右クリックします。
  2. コンテキスト メニューから[構成] を選択します。
  3. 次に、インクルード パス ダイアログで、[ライブラリ] タブを選択します。
  4. [外部フォルダーを追加...] をクリックします。
  5. CI のローカル コピーを参照し、そのライブラリ ディレクトリを選択します (これらのクラス ファイルが保持されている場所)。
  6. [完了] をクリックします

ほら、ほら!

プロジェクトの作成時にインクルード パスを定義することもできます。

于 2009-07-03T16:56:13.383 に答える
4

Peterの答えが示すように、インクルードパスを追加するのが間違いなく最善の方法です。ただし、これは、CIソースコードのdocblockが完全で正確であり、あいまいでないことに依存しています。たとえば、メソッド@returnがとして宣言されているSome_Class|false場合、オートコンプリートはそれをどう処理するかを認識しません。

Peterの答えに追加するために、PDT / Eclipse / ZSfEに、次のように任意の変数を特定のクラスのインスタンスとして処理するように強制することもできます。

/* @var $varName Some_Class_Name */
于 2009-07-03T17:48:13.287 に答える
2

SVN などからプロジェクトをインポートした場合、このプロジェクトで PHP サポートが有効になっていない可能性があります。プロジェクトを右クリックして有効にすることができます - >構成 - > PHPサポートを追加...

ZS 7.2.1 でテスト済み

于 2010-08-26T11:42:41.417 に答える
0

私は zend studio 9 を使用しています。それが私がしたことです。CI のライブラリ パスをインクルード パスとしてプロジェクトに追加します。

$this->load->model('my_model');
$my_model = &$this->my_model;
$my_model instanceof my_model;//add this ,zend studio can autocomplete 
$my_model->myfunc($foo,$bar);
于 2013-09-20T08:42:15.690 に答える