PHPStorm: правильный PHPDoc для коллекции объектов?

Я использую PhpStorm IDE, и я столкнусь с проблемами при проверке кода.

У меня есть метод, который возвращает коллекцию объектов.Collection сам по себе является объектом, который имеет свои собственные методы и реализует Traversable интерфейс:

class Repository
{
    public function findByCustomer(Customer $user)
    {
        // ...
        return new Collection($orders);
    }
}

Если я документируюfindByUser() чтобы вернутьCollection, проверка кода понимает методы этого объекта, но не понимает, какие объекты содержит коллекция:

/**
 * @return Collection
 */
public function findByCustomer() { ... }

Если я документируюfindByUser() чтобы вернуть коллекциюOrder объекты, проверка кода теперь понимает, что находится внутри коллекции, но не методыCollection сам

/**
 * @return Order[]
 */
public function findByCustomer() { ... }

Есть ли способ указать оба одновременно, что-то вроде синтаксиса Java?

/**
 * @return Collection<Order>
 */
public function findByCustomer() { ... }
 Benjamin23 мая 2012 г., 11:26
@ LazyOne: даже если не идеальный, для меня это более чистый вариант. Вы можете добавить это как ответ?
 LazyOne23 мая 2012 г., 11:12
Вы можете объединить их (оба типа) вместе. Может быть не идеальным в некоторых ситуациях, но работает, и вы можете подумать, что это лучше, чем указывать тип вручную через @var PHPDoc комментарий. Так .../** @return Collection|Order[] */

Ответы на вопрос(1)

Решение Вопроса

екоторых ситуациях, но работает, и вы можете рассмотреть это лучше, чем указание типа вручную через@var PHPDoc комментарий.

/** @return Collection|Order[] */
 Benjamin13 мар. 2014 г., 11:12
К сожалению, в PHPStorm 8 это больше не работает: теперь он проверяет, что оба типа разделены| есть метод. Есть ли лучший способ напечатать это сейчас?
 LazyOne13 мар. 2014 г., 11:45
@ Бенджамин Пожалуйста, предоставьте простой пример кода для копирования-вставки (я бы хотел увидеть его глубже)
 programaths28 авг. 2013 г., 16:01
В этом случае он может даже читать: вернуть коллекцию, чем можно рассматривать как массив порядка.
 Benjamin13 мар. 2014 г., 14:02
@ LazyOne Я удивлен, что не могу повторить это сейчас, у меня были все эти проблемы с проверкой, когда я впервые открыл PHPStorm 8. Возможно, это не то, что я думал, и на самом деле связано с WI-22469 ты только что прокомментировал!

Ваш ответ на вопрос