簡體   English   中英

部分代碼完成PHPStorm CodeIgniter 3

[英]Partial code completion PHPStorm CodeIgniter 3

(在Mac OS X Yosemite 10.10.3上運行的具有CodeIgniter 3的PHPStorm版本8.0.3)

如標題所示,我目前遇到部分代碼完成。

一開始我什么都沒有,我使用以下鏈接添加了部分內容:

  1. https://github.com/topdown/phpStorm-CC-Helpers/blob/master/README.md#using-the-my_modelsphp (它適用於我,無需使用“標記為純文本”解決方案)

例如,現在我可以看到$this->...的代碼完成,因此一開始就給了我一些我沒有的選項。

當我使用$query->row_array();時,我確實從PHPStorm收到“未找到”方法警告消息$query->row_array(); 在分配$query = $this->db->get_where('news', array('slug' => $slug)); 因此,在這種情況下,我的代碼完成無法正常工作(無法找到它)。

此類的完整代碼在下面。

class News_model extends CI_Model
{
    public function __construct()
    {
        $this->load->database();
    }

    public function get_news($slug = FALSE)
    {
        if($slug === FALSE)
        {
            $query = $this->db->get('news');

            return $query->result_array();
        }

        $query = $this->db->get_where('news', array('slug' => $slug));

        return $query->row_array();
    }
}

當我搜索方法“ row_array”時,可以在“系統”>“數據庫”>“ db_result.php”下找到它。 這樣就定義了,但是PHPStorm無法給我代碼完成

我怎樣才能解決這個問題?

據我了解。

只要您遵循以下選項之一

選項1 =文件>設置>目錄>添加內容根>在phpStorm-CC-helpers中選擇相關目錄>標記資源根

選項2 =在項目窗口中,右鍵單擊“外部庫”>“配置PHP包含路徑”,然后將路徑添加到相關的phpStorm-CC-helpers

然后根據幫助程序注釋, /CI_DB_active_record是調用get_where時返回的get_where 確保將文件/system/database/DB_active_rec.php標記為純文本,以便IDE可以對其進行解析以實現自動完成。

如果您使用的是CodeIgniter 3, /system/database/DB_active_rec.php從CodeIgniter源中刪除/system/database/DB_active_rec.php/CI_DB_active_record類,因此將找不到該助手所引用的/CI_DB_active_record的引用。

我剛剛測試了一下,它可以確認它確實有效,雖然不理想,但會為$ query var產生自動完成功能。

我在我的項目路線中使用了它。 https://gist.github.com/gentoid/4353692

然后,您必須執行以下代碼:

public function index($slug)
{
    /** @var CI_DB_result $query */
    $query = $this->db->get();

    //this will now produce auto complete in PHPStorm because 
    //it knows that object the $query var contains.
    //$query->
}

你也可以做到這一點

/**
 * @return CI_DB_result
 */
public function getData()
{
    return $this->db->get();
}

public function test()
{
    $query = $this->getData();

    //this will now produce auto complete in PHPStorm because 
    //it knows that object the $query var contains.
    //$query->
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM