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

Я использую PHPStormIDE и сталкиваюсь с проблемами, когда запускаю проверку кода.

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

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

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

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

Method getTotal() not found in class Collection

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

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

Method slice() not found in class Order[]

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

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

24
задан Benjamin 16 July 2013 в 12:25
поделиться