2012-07-11 117 views
4

我正在尋找一種方法,使PHPStorm從代碼完成隱藏一些方法。我試圖使用@access private註釋DocBlocks,但這並不能將它們隱藏起來。有沒有辦法告訴PHPStorm隱藏一個方法/函數/變量/等

有沒有什麼辦法可以隱藏私人API,短缺寫/生成一個有限接口的存根文件,並在我的項目中引用?

例如:

可以說圖書館有這它:

<?php 


interface IDoABunchOfStuff 
{ 
    /** 
    * My library users use this 
    */ 
    public function doFoo(); 

    /** 
    * My Library needs this but requires that my users don't see it. 
    * 
    * @access private 
    * @visibility none 
    * @package mylib 
    * @internal 
    */ 
    public function doBar(); 

} 

class Foo extends Something implements IDoABunchOfStuff 
{ 
    /** 
    * does foo 
    */ 
    public function doFoo() 
    { 
     // ... 
    } 

    /** 
    * does bar. for internal use only 
    * 
    * @access private 
    * @visibility none 
    * @package mylib 
    * @internal 
    */ 
    public function _doBar() 
    { 
     // ... 
    } 
} 

而且我的圖書館用戶鍵入:

<?php 

myAwesomeFunction(IDoABunchOfStuff $aFoo) 
{ 
    if($->$oFoo->[CTRL+SPACE] // invoking code completion... 

是否有可能(如果它是我該怎麼做)讓我的用戶永遠不會看到_doBar

我試過的不同註釋似乎都沒有達到預期的效果。

P.S.我使用PHPStorm 4.0.3

補充:

在這種情況下,我實現了ArrayAccess,我不想offsetGet,offsetSet,offsetExists和offsetUnset塞滿了我的代碼完成窗口,但我也有類似的其他地方的問題足以保證提出更廣泛的問題。

+0

您是否可以將「doBar」功能設爲私有? – 2012-07-11 15:25:53

+2

@PeteHerbertPenito:不。這些類必須通過名稱空間進行通信,並擁有不同的基類。我甚至無法保護這些方法。 – Kris 2012-07-11 15:28:13

回答

2

不 - 你不能在當前版本的PhpStorm中做這樣的事情。

有上建議使用@access標籤用於此目的的問題跟蹤票,但目前它沒有安排任何特別的版本中實現:http://youtrack.jetbrains.com/issue/WI-5788

隨意投/評論/等等,也許它將盡快實施。

+0

這很糟糕,我不得不跳過這麼多的箍,沒有得到實際的結果,但這是完全回答我的問題。感謝那。 – Kris 2012-07-11 16:38:42

相關問題