Aptana Studio 3 Завершение PHP-кода для смешанных типов? - PullRequest
0 голосов
/ 18 января 2012

В настоящее время я работаю в Aptana Studio 3 (которая на данный момент версии 3.0.7), используя PHP.У меня есть функция, которая будет возвращать экземпляр другого объекта, но этот объект определяется во время выполнения.Поэтому невозможно украсить функцию соответствующими комментариями.Вместо этого я ищу чистое решение для декорирования вызывающей стороны тегами для завершения кода.Как я могу это сделать?

/**
 * Represents a person.
 */
class Person
{
    /**
     * Contains the identifier.
     *
     * @var int
     */
    public $PersonId;

    /**
     * Contains the string.
     *
     * @var string
     */
    public $Name;
}

/**
 * A simple factor example.
 * 
 * @return mixed
 */
function CreateExample( $zClass )
{
    return new $zClass();
}

/* @var $x Person */
$x = CreateExample( 'Person' ) instanceof Person;

После оформления комментариями и instanceof оно наконец заработало, но это выглядит ужасно!Нет ли лучшего способа использовать one решение и заставить его работать как задумано?

1 Ответ

2 голосов
/ 19 января 2012

Хорошо. Во-первых, я считаю, что CreateExample( 'Person' ) instanceof Person просто присваивает примитивное логическое значение в $x. Это также причина, по которой вы не получите помощь по коду на $x, даже если вы измените возврат CreateExample на @return Person.

Настройка $x = CreatePerson( 'Person' ); даст вам CA, если вы правильно настроили документ CreateExample.

Теперь, поскольку у вас смешанный возвращаемый тип, одним из решений является использование @var документа, как вы это сделали. Однако есть и другое решение, которое вы можете использовать.

Я предполагаю, что вы знаете все возможные типы возврата, поэтому в этом случае вы можете pipe эти типы в CreateExample @return:

@return Person|OtherClass|ThirdClass

Теперь, когда вы код-помощник $x, вы получите совокупность всех доступных элементов из всех классов, которые вы передали.

Надеюсь, это поможет!

...