मैं PHPStorm आईडीई का उपयोग कर रहा हूं, और जब मैं कोड निरीक्षण चलाता हूं तो परेशानी में भाग लेता हूं।PHPStorm: ऑब्जेक्ट्स के संग्रह के लिए सही PHPDoc?
मेरे पास एक तरीका है जो वस्तुओं का संग्रह देता है। 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() { ... }
वहाँ निर्दिष्ट करने के लिए एक रास्ता है दोनों एक ही समय में, जावा के वाक्यविन्यास की तरह कुछ?
/**
* @return Collection<Order>
*/
public function findByCustomer() { ... }
आप उन्हें (दोनों प्रकार) एक साथ जोड़ सकते हैं। कुछ परिस्थितियों में आदर्श नहीं हो सकता है, लेकिन काम करता है और आप मैन्युअल रूप से @var PHPDoc टिप्पणी के माध्यम से प्रकार निर्दिष्ट करने से बेहतर मान सकते हैं। तो ... '/ ** @ वापसी संग्रह | आदेश [] * /' – LazyOne
@LazyOne: भले ही सही नहीं है, यह मेरे लिए एक क्लीनर विकल्प है। क्या आप इसे एक उत्तर के रूप में जोड़ सकते हैं? – Benjamin