2012-07-11 118 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

相关问题