Estoy usando el IDE PHPStorm y tengo problemas cuando ejecuto la inspección del código.PHPStorm: ¿corregir PHPDoc para una colección de objetos?
Tengo un método que devuelve una colección de objetos. El Collection
sí es un objeto, que tiene sus propios métodos, e implementa la interfaz Traversable:
class Repository
{
public function findByCustomer(Customer $user)
{
// ...
return new Collection($orders);
}
}
Si documentar findByUser()
para devolver un Collection
, la inspección de código entiende los métodos de este objeto, pero doesn' entiendo qué objetos de la colección contiene:
/**
* @return Collection
*/
public function findByCustomer() { ... }
Si se documentan findByUser()
para devolver una colección de Order
objetos, la inspección de código ahora entiende lo que está dentro de la colección, pero no los métodos de la Collection
sí:
/**
* @return Order[]
*/
public function findByCustomer() { ... }
¿Hay una manera de especificar ambos al mismo tiempo, algo así como la sintaxis de Java?
/**
* @return Collection<Order>
*/
public function findByCustomer() { ... }
Puede combinarlos (ambos tipos) juntos. Puede no ser ideal en algunas situaciones, pero funciona y puede considerar que es mejor que especificar manualmente el tipo mediante @var PHPDoc comment. Entonces ... '/ ** @return Collection | Order [] * /' – LazyOne
@LazyOne: incluso si no es el perfecto, esa es una opción más limpia para mí. ¿Puedes agregar esto como respuesta? – Benjamin