web-dev-qa-db-ja.com

CodeIgniterフレームワークのPHPStormでオートコンプリートを有効にする方法

CodeIgniterプロジェクトでは、通常、次のコマンドを使用してSQLを実行します。

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

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

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

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

それは残りの機能を自動的にポップアップします。しかし、PHPStormでは問題ありませんでした。機能する第1レベルのオートコンプリートのみ。

14
Mifas

私はそれを見つけた。

https://github.com/topdown/phpStorm-CC-Helpers

私の指示に従ってください

14
Mifas

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

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

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

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

Mifasリンクも同じです

29
Sabbir

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

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

Sabirの回答の続きとして読むべきその中からの引用-

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

/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ウェイのビューにデータ配列を追加しました。配列の各インデックスは別の変数です。

景色…

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

22
Shrenik