我正在寻找一种让PHPStorm隐藏代码完成方法的方法。我试图用@access private
注释DocBlocks,但这并不会将它们隐藏起来。
有没有办法隐藏私有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 :(得分:2)
不 - 你不能在当前版本的PhpStorm中做这样的事情。
问题跟踪器上有一个建议使用@access
标记用于此目的,但目前尚未安排为任何特定版本实施:http://youtrack.jetbrains.com/issue/WI-5788
随意投票/评论/等等,也许它会更早实施。