15

CodeIgniter Projectでは、通常、次のコマンドを使用してsqlを実行します。

$res = $this->db->select('*')
                 ->from('customer')
                 ->where('customer.id', $id)
                 ->get();

しかし残念ながら、私のPHP Storm(5.0)は複数のオートコンプリートをサポートしていませんでした(これを言う方法がわかりません)

たとえば、NetBeansで入力した場合

$res = $this->db->select('*')->

関数の残りの部分が自動的にポップアップ表示されます。しかし、PHPStormではそれはうまくいきませんでした。その動作する第1レベルのオートコンプリートのみ。

4

2 に答える 2

29

ダウンロードhttps://github.com/topdown/phpStorm-CC-Helpers/releases

プレーンテキストとしてマーク

  • /system/core/Controller.php
  • /system/core/Model.php
  • /システム/データベース/DB_active_rec.php

次に、ダウンロードしたアーカイブを解凍し、プロジェクト ルートにコピーします。

Mifas リンクも同じことを行いますが、これですべてです。

于 2012-11-18T05:04:34.643 に答える
24

非常に古いが、まだ適切な質問への回答 -

ここでより良い解決策を見つけました - http://validwebs.com/346/code-completion-for-codeigniter-in-phpstorm/偶然にも、同じ作者/プロジェクト所有者のJeff Behnkeによるものです。

そこからの引用は、サビールによる回答の続きで読む必要があります-

プレーンテキストとしてマーク

/system/core/Controller.php
/system/core/Model.php
/system/database/DB_active_rec.php

これらのファイルをプレーン テキストとしてマークすると、phpStorm がそれらをソースとしてインデックス化するのを停止します。

リンクの解決策は、実行された手順の背後にある理論的根拠を説明しているため、より適切だと思います。

さらに、ビューでコード補完を実現し、未定義の変数を修正する方法についても説明します。

ここで簡単に参照および保存できるように、元のソースからもう一度引用します。

ビューでのコード補完と未定義の変数の修正。

コントローラーコードの例。

public function index()
{
  // Example view vars
  $data['test'] = 'Testing vars in CodeIgniter!     This is from $data["test"].';

  $this->load->view('welcome_message', $data);

}

CI の方法でビューにデータ配列を追加しました。配列内の各インデックスは別の変数です。

ビュー…</p>

phpStorm では、$test は未定義の変数として強調表示されます。これを修正するために、phpDoc アノテーションを使用します。

<p style="font-weight: bold;">
<?php
/**
 * $data array holds the $test value
 * 
 * @see Welcome::index()
 * @var Welcome $test
 */
echo $test;
?>
</p>

このように文書化すると、phpStorm のエラー/警告が修正されるだけでなく、$test の文書化ポップアップも表示されます。また、@see はそれが作成された場所 (この場合は Welcome クラスの index メソッド) にリンクします。

var が定義され、定義されていることが示されます。

このメソッド リンクを Ctrl+クリックすると、$test が定義されているメソッドに移動します。

プロジェクトにカスタマイズを追加しているときに、私自身の発見がいくつかあります。

CI のカスタム アプリケーション ライブラリをオートコンプリートでも使用できるようにする場合は、次の 2 つのシナリオが役立ちます。

1. CI_Upload クラスを拡張する MY_Upload などのカスタム拡張ライブラリの場合

CI_phpstorm.php@property CI_Upload $uploadで置き換え@property MY_Upload $uploadます

これにより、CI_Upload に加えて、MY_Upload のすべてのクラス変数と関数名がオートコンプリートで使用できるようになります。

2. CI アプリケーション内でゼロから作成された完全なカスタム ライブラリの場合 -

たとえば、application/libraries フォルダーにある Custom_Library.php からのオートコンプリートを有効にするには、CI_phpstorm.php の php ドキュメントに追加する必要があります。@property Custom_Library $custom_library

于 2015-01-16T06:06:01.990 に答える