配置phpstorm完美支援Codeigniter(CI)程式碼自動完成(程式碼提示)
1、設定字型、風格
程式碼主題選擇Monokai會是彩色的程式碼。
2、配置CI程式碼提示
<1>下載程式碼提示專案:
https://github.com/topdown/phpStorm-CC-Helpers
<2>拷貝提示片段:
將CI_phpStorm.php,DB_active_rec.php(改名為DB_query_builder.php),my_models.php拷貝到網站根目錄,即index.php同目錄下。
<3>將CI核心類設為純文字:
將system裡面的core/Controller.php,core/Model.php,database/DB_query_builder.php右鍵設為plain text。
現在已經有程式碼完成功能了。
<4>實現model提示功能:
把Model類在my_models.php的註釋裡新增,注意把類名首字母大寫改為小寫。這樣Model就能提示了。
<5>實現view提示:
<h2><?php
/**
* @see News::index()
* @var News $title
* @var News $news
*/
echo $title;
?></h2>
相應的controller類需要實現__toString()方法,就可以了。
按住ctrl+滑鼠左鍵,就可以看到他來自於哪個類(ctrl+q顯示註釋),如果點選函式名則可以導航到那個函式。
<6>model子資料夾
在model再建立資料夾,比如建立這樣一個model類:mod/Test1_model.php。
同樣是在my_models.php裡添加註釋,但是忽略mod資料夾,當這個資料夾不存在一樣:
@property test1_model $test1_model
但是在程式碼load的時候,這個資料夾要體現出來,這樣體現出來也不會影響這個程式碼提示的:
$this->load->model('mod/test1_model'); $data['news2'] = $this->test1_model->getData();
<7>實現library自定義類提示功能
自定義程式碼會放在libraries裡面,並且會放在一個單獨的子資料夾裡。因為這個程式碼可能會重用,這個子資料夾會單獨做為一個git,而其他的程式碼則重用的可能性不大、緊扣本網站的獨特業務邏輯,不考慮重用問題。那麼這種自定義程式碼如何做程式碼提示?跟model是一樣的:
@property Testzphp $testzphp
然後在controller裡:
$this->load->library('zphp/Testzphp');
$data['zphp'] = $this->testzphp->test(235);
<8>自定義變數程式碼提示
由於不能指定型別,變數往往不能直接使用自定義類的方法,我們可以給他新增程式碼提示。
注意:程式碼提示只是程式碼提示,並不是真的完成型別轉換。
全域性變數的程式碼提示新增在變數的上方,比如:
/**
* @var CommonOrderInfo $orderInfo
*/
private $orderInfo = null;
如果是在函式內的區域性變數,那麼在函式外定義這個程式碼提示是不對的,因為他的作用範圍不在那裡,正確的做法仍然是新增在變數上方。如果for迴圈則可以新增在迴圈的上方,或者在迴圈內部再次用到變數的時候新增在變數的上方。
/**
* @var CommonOrderItem $item
*/
foreach ($this->orderItems as $item)
{}
3、git配置
將.idea新增到忽略清單。
4、拼寫檢查去掉
project settings ---> inspections ---> spelling ---> Typo的勾去掉
5、快捷鍵
<1>快速導航
當通過程式碼導航到對應的類-方法檢視原始碼之後,需要能快速的返回回來:ctrl+alt+左箭頭/右箭頭