GitHub से एक मौजूदा वर्ग का विस्तार करने की कोशिश करते हुए मुझे इस समस्या का सामना करना पड़ा। मैं खुद को समझाने की कोशिश कर रहा हूं, पहले कक्षा को वैसे ही लिख रहा हूं जैसा कि यह होना चाहिए, और फिर कक्षा अब जैसा है।
हालांकि मैं क्या
namespace mycompany\CutreApi;
use mycompany\CutreApi\ClassOfVendor;
class CutreApi extends \vendor\AwesomeApi\AwesomeApi
{
public function whatever(): ClassOfVendor
{
return new ClassOfVendor();
}
}
मैंने आखिरकार क्या किया है
namespace mycompany\CutreApi;
use \vendor\AwesomeApi\ClassOfVendor;
class CutreApi extends \vendor\AwesomeApi\AwesomeApi
{
public function whatever(): ClassOfVendor
{
return new \mycompany\CutreApi\ClassOfVendor();
}
}
ऐसा लगता है कि यह गलतफहमी तब भी बढ़ जाती है जब आप एक ऐसी विधि का उपयोग कर रहे हैं जो किसी नामांकित वर्ग को लौटाता है, और आप उसी वर्ग को लेकिन अन्य नामस्थानों को वापस करने का प्रयास करते हैं। सौभाग्य से मुझे यह समाधान मिल गया है, लेकिन मुझे इस सुविधा का लाभ php 7.2 में पूरी तरह से समझ में नहीं आया है, मेरे लिए मौजूदा वर्ग विधियों को फिर से लिखना सामान्य है क्योंकि आपको उनकी आवश्यकता होती है, जिसमें इनपुट मापदंडों को फिर से परिभाषित करना और / या यहां तक कि व्यवहार भी शामिल है। तरीका।
पिछले aproach का एक पहलू यह है कि IDE, mycompany \ CutreApi \ ClassOfVendor () में लागू किए गए नए तरीकों को नहीं पहचान सका। इसलिए, अब मैं इसके कार्यान्वयन के साथ जाऊंगा।
वर्तमान में किया है
namespace mycompany\CutreApi;
use mycompany\CutreApi\ClassOfVendor;
class CutreApi extends \vendor\AwesomeApi\AwesomeApi
{
public function getWhatever(): ClassOfVendor
{
return new ClassOfVendor();
}
}
इसलिए, मैंने "जो भी" विधि का उपयोग करने की कोशिश की, मैंने "getWhatever" नामक एक नया लिखा। वास्तव में दोनों एक ही कर रहे हैं, बस एक वर्ग लौट रहा है, लेकिन अलग-अलग नामस्थानों के साथ जैसा कि मैंने पहले बताया है।
आशा है कि यह किसी की मदद कर सकता है।
function customMethod( ... )
प्रत्येक फ़ंक्शन के लिए हम आपको विशिष्ट समस्या बता सकते हैं