8

IntelliJ IDEA 12 を使用して、CodeIgniter フレームワークを使用して PHP Web アプリケーションを開発しています。CI がオブジェクトとメソッドをインスタンス化する方法により、IDEA はそれらが呼び出されたときに存在しないと見なします。

ここに画像の説明を入力

ご覧のとおり、使用しようとしているすべての CodeIgniter クラス/メソッドの下に、迷惑なオレンジ色の波線が表示されます。

クラスのコードは次のCI_Controllerとおりです。オブジェクトの作成方法についての洞察が得られます。

class CI_Controller {

    private static $instance;

    /**
     * Constructor
     */
    public function __construct()
    {
        self::$instance =& $this;

        // Assign all the class objects that were instantiated by the
        // bootstrap file (CodeIgniter.php) to local class variables
        // so that CI can run as one big super object.
        foreach (is_loaded() as $var => $class)
        {
            $this->$var =& load_class($class);
        }

        $this->load =& load_class('Loader', 'core');

        $this->load->initialize();

        log_message('debug', "Controller Class Initialized");
    }

    public static function &get_instance()
    {
        return self::$instance;
    }
}

IntelliJ IDEA でこれらのエラーを無視する (他のエラーは無視する) か、独自にオブジェクトを検索する方法はありますか?

注: 以前は、IntelliJ IDEA プラットフォーム上の PHP IDE ビルドである PHPStorm を使用していましたが、CodeIgniter に関しても同じことを行いました。

4

2 に答える 2

11

このガイドに従ってこれを解決しました。これは PHPStorm 向けでしたが、IntelliJ IDEA でも機能します (おそらく WebStorm も!)。実際、それは非常に簡単でした。基本的な要約:

  1. 次の PHP コードをプロジェクト ルートに保存しました。これは基本的に単なる PHPDoc コメントです。
    <?php die('このファイルは実際にはここにありません!');

    /**
     * ------------- このファイルをライブ サーバーにアップロードしないでください ---------------------
     *
     * phpStorm で CodeIgniter のコード補完を実装
     * phpStorm はすべてのクラス構造にインデックスを付けるため、このファイルがプロジェクトにある場合はロードされます。
     * -------------------------------------------------- ------------------
     * 以下のファイルを phpStorm の CI プロジェクトにドロップします
     * プロジェクトのルートに配置すると、phpStorm がロードします。
     * (phpStorm がロードしない場合は、プロジェクトを閉じてから再度開いてみてください)
     *
     * 下のシステム/コア/
     * Controller.php を右クリックし、Mark as Plain Text を設定します。
     * Model.php についても同じことを行います
     * -------------------------------------------------- ------------------
     * この方法では、コード補完のこの単純なレイヤーで CI コア ファイルを編集する必要はありません。
     *
     * PHP バージョン 5
     *
     * ライセンス: GPL http://www.gnu.org/copyleft/gpl.html
     *
     * 2012 年 1 月 28 日 23:06 作成
     *
     * @カテゴリー
     * @package CodeIgniter CI_phpStorm.php
     * @作者のジェフ・ベンケ
     * @copyright 2009-11 Valid-Webs.com
     * @license GPL http://www.gnu.org/copyleft/gpl.html
     * @バージョン 2012.01.28
     */

    /**
     * @property CI_DB_active_record $db これは、プラットフォームに依存しない基本 Active Record 実装クラスです。
     * @property CI_DB_forge $dbforge データベース ユーティリティ クラス
     * @property CI_Benchmark $benchmark このクラスを使用すると、ポイントをマークして、ポイント間の時間差を計算できます。
メモリ消費量も表示できます。 * @property CI_Calendar $calendar このクラスはカレンダーの作成を可能にします * @property CI_Cart $cart ショッピング カート クラス * @property CI_Config $config このクラスには、構成ファイルを管理できるようにする関数が含まれています * @property CI_Controller $controller このクラス オブジェクトは、すべてのライブラリが含まれるスーパー クラスです。CodeIgniter
が割り当てられます。 * @property CI_Email $email Mail、Sendmail、または SMTP を使用して電子メールを送信できるようにします。 * @property CI_Encrypt $encrypt XOR ハッシュと Mcrypt を使用して双方向キー付きエンコーディングを提供します * @property CI_Exceptions $exceptions 例外クラス * @property CI_Form_validation $form_validation フォーム検証クラス * @property CI_Ftp $ftp FTP クラス * @property CI_Hooks $hooks ハッキングせずにベース システムを拡張するメカニズムを提供します。 * @property CI_Image_lib $image_lib 画像操作クラス * @property CI_Input $input セキュリティのためにグローバル入力データを前処理します * @property CI_Lang $lang 言語クラス * @property CI_Loader $load ビューとファイルを読み込みます * @property CI_Log $log ロギング クラス * @property CI_Model $model CodeIgniter モデル クラス * @property CI_Output $output 最終出力をブラウザに送信する責任があります * @property CI_Pagination $pagination ページネーション クラス * @property CI_Parser $parser 指定されたテンプレート ビューに含まれる疑似変数を解析
し、2 番目のパラメーターのデータに置き換えます。 * @property CI_Profiler $profiler このクラスを使用すると、ベンチマーク、クエリ、およびその他のデータを表示
して、デバッグと最適化に役立てることができます。 * @property CI_Router $router URI を解析し、ルーティングを決定します * @property CI_Session $session セッション クラス * @property CI_Sha1 $sha1 は、セキュア ハッシュ アルゴリズムを使用して 160 ビットのハッシュを提供します * @property CI_Table $table HTML テーブル生成
テーブルを手動で、またはデータベースの結果オブジェクトまたは配列から作成できます。 * @property CI_Trackback $trackback トラックバック送受信クラス * @property CI_Typography $typography タイポグラフィ クラス * @property CI_Unit_test $unit_test 簡単なテスト クラス * @property CI_Upload $upload ファイルアップロードクラス * @property CI_URI $uri URI を解析し、ルーティングを決定します * @property CI_User_agent $user_agent ブラウジング エージェントのプラットフォーム、ブラウザ、ロボット、またはモバイル デバイスを識別します * @property CI_Validation $validation //デッド * @property CI_Xmlrpc $xmlrpc XML-RPC リクエスト ハンドラ クラス * @property CI_Xmlrpcs $xmlrpcs XML-RPC サーバー クラス * @property CI_Zip $zip Zip 圧縮クラス * @property CI_Javascript $javascript Javascript クラス * @property CI_Jquery $jquery Jquery クラス * @property CI_Utf8 $utf8 UTF-8 環境のサポートを提供します * @property CI_Security $security セキュリティ クラス、xss、csrf など... */ クラス CI_Controller{} /** * @property CI_DB_active_record $db これは、プラットフォームに依存しない基本 Active Record 実装クラスです。 * @property CI_DB_forge $dbforge データベース ユーティリティ クラス * @property CI_Benchmark $benchmark このクラスを使用すると、ポイントをマークして、ポイント間の時間差を計算できます。
メモリ消費量も表示できます。 * @property CI_Calendar $calendar このクラスはカレンダーの作成を可能にします * @property CI_Cart $cart ショッピング カート クラス * @property CI_Config $config このクラスには、構成ファイルを管理できるようにする関数が含まれています * @property CI_Controller $controller このクラス オブジェクトは、すべてのライブラリが含まれるスーパー クラスです。CodeIgniter
が割り当てられます。 * @property CI_Email $email Mail、Sendmail、または SMTP を使用して電子メールを送信できるようにします。 * @property CI_Encrypt $encrypt XOR ハッシュと Mcrypt を使用して双方向キー付きエンコーディングを提供します * @property CI_Exceptions $exceptions 例外クラス * @property CI_Form_validation $form_validation フォーム検証クラス * @property CI_Ftp $ftp FTP クラス * @property CI_Hooks $hooks ハッキングせずにベース システムを拡張するメカニズムを提供します。 * @property CI_Image_lib $image_lib 画像操作クラス * @property CI_Input $input セキュリティのためにグローバル入力データを前処理します * @property CI_Lang $lang 言語クラス * @property CI_Loader $load ビューとファイルを読み込みます * @property CI_Log $log ロギング クラス * @property CI_Model $model CodeIgniter モデル クラス * @property CI_Output $output 最終出力をブラウザに送信する責任があります * @property CI_Pagination $pagination ページネーション クラス * @property CI_Parser $parser 指定されたテンプレート ビューに含まれる疑似変数を解析
し、2 番目のパラメーターのデータに置き換えます。 * @property CI_Profiler $profiler このクラスを使用すると、ベンチマーク、クエリ、およびその他のデータを表示
して、デバッグと最適化に役立てることができます。 * @property CI_Router $router URI を解析し、ルーティングを決定します * @property CI_Session $session セッション クラス * @property CI_Sha1 $sha1 は、セキュア ハッシュ アルゴリズムを使用して 160 ビットのハッシュを提供します * @property CI_Table $table HTML テーブル生成
テーブルを手動で、またはデータベースの結果オブジェクトまたは配列から作成できます。 * @property CI_Trackback $trackback トラックバック送受信クラス * @property CI_Typography $typography タイポグラフィ クラス * @property CI_Unit_test $unit_test 簡単なテスト クラス * @property CI_Upload $upload ファイルアップロードクラス * @property CI_URI $uri URI を解析し、ルーティングを決定します * @property CI_User_agent $user_agent ブラウジング エージェントのプラットフォーム、ブラウザ、ロボット、またはモバイル デバイスを識別します * @property CI_Validation $validation //デッド * @property CI_Xmlrpc $xmlrpc XML-RPC リクエスト ハンドラ クラス * @property CI_Xmlrpcs $xmlrpcs XML-RPC サーバー クラス * @property CI_Zip $zip Zip 圧縮クラス * @property CI_Javascript $javascript Javascript クラス * @property CI_Jquery $jquery Jquery クラス * @property CI_Utf8 $utf8 UTF-8 環境のサポートを提供します * @property CI_Security $security セキュリティ クラス、xss、csrf など... */ クラス CI_Model{}

2. IntelliJ IDEA 内で見つけ/system/core/controller.phpて右クリックし、[プレーン テキストとしてマーク] をクリックします。/system/core/model.php

3. 完成!これはうまく機能し、誤ったエラーはなくなり、コード補完も行われます!

ここに画像の説明を入力

于 2013-03-15T04:53:10.397 に答える