PHPStorm: richtige PHPDoc für eine Sammlung von Objekten?

Ich bin mit dem PHPStorm IDE, und führen Sie in Schwierigkeiten, wenn ich die code-Inspektion.

Habe ich eine Methode, die zurückgibt, eine Sammlung von Objekten. Die Collection selbst ist ein Objekt, das seine eigenen Methoden, und implementiert die Überfahrbar Schnittstelle:

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

Wenn ich das Dokument findByUser() zurückgeben Collection die code-Inspektion versteht die Methoden auf dieses Objekt, aber nicht verstehen, was Objekte enthält die Sammlung:

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

PHPStorm: richtige PHPDoc für eine Sammlung von Objekten?

Wenn ich das Dokument findByUser() zum zurückgeben einer Auflistung Order Objekte, die code-Inspektion jetzt versteht, was in der Sammlung, aber nicht die Methoden, die auf der Collection selbst:

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

PHPStorm: richtige PHPDoc für eine Sammlung von Objekten?

Gibt es einen Weg geben Sie beide zur gleichen Zeit, so etwas wie Java-syntax?

/**
 * @return Collection<Order>
 */
public function findByCustomer() { ... }
  • Kombinieren Sie diese (beiden Arten) zusammen. Kann nicht ideal sein, in einigen Situationen, aber Sie funktioniert und Sie können prüfen, es besser als manuelle Angabe der Art via @var PHPDoc-Kommentar. So ... /** @return Collection|Order[] */
  • auch wenn Sie nicht das perfekte, das ist eine sauberere option für mich. Hinzufügen Sie können das als Antwort?
InformationsquelleAutor Benjamin | 2012-05-22
Schreibe einen Kommentar