6

我正在寻找一种使 PHPStorm 隐藏代码完成的一些方法的方法。我试图用注释来注释 DocBlocks,@access private但这并没有将它们隐藏起来。

有没有办法隐藏私有 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

我尝试过的不同注释似乎都没有达到预期的效果。

PS我正在使用PHPStorm 4.0.3

额外的:

在这种情况下,我正在实现 ArrayAccess,我不希望 offsetGet、offsetSet、offsetExists 和 offsetUnset 弄乱我的代码完成窗口,但我在其他地方也遇到过类似的问题,足以保证提出一个更笼统的问题。

4

1 回答 1

2

不——你不能在当前版本的 PhpStorm 中做这样的事情。

问题跟踪器上有一张票建议@access为此目的使用标签,但目前没有计划为任何特定版本实施:http: //youtrack.jetbrains.com/issue/WI-5788

随意投票/评论/等,也许它会尽快实施。

于 2012-07-11T16:26:15.583 回答