Wrapping boost::shared_ptr in PHP using SWIG -


यदि मैं इस C ++ फ़ंक्शन को लपेट करने के लिए SWIG का उपयोग करता हूं:

  boost :: shared_ptr & lt; client & gt; ; क्लाइंट :: बनाएँ () {रिटर्न बूस्ट :: साझा एपीटीआर & lt; क्लाइंट & gt; (नया ग्राहक ()); }  

और फिर उसे PHP में कॉल करें:

  $ client = ग्राहक :: बनाएँ (); गूंज gettype ($ ग्राहक);  $ client  का प्रकार  संसाधन  है,  वस्तु  नहीं है, और इसलिए मैं  ग्राहक  विधियां। 

इस फ़ंक्शन को लपेटने के लिए मेरे विकल्प क्या हैं? मैं किसी और के सी + + लाइब्रेरी के लिए PHP आवरण का निर्माण कर रहा हूं, इसलिए boost :: shared_ptr का उपयोग नहीं करने के लिए कोड का पुन: कार्य करना वास्तव में एक विकल्प नहीं है।

यह एकमात्र समाधान है मैं अभी तक साथ आया हूं:

  MyClient क्लाइंट :: createObject () {वापसी * ​​क्लाइंट :: बनाएँ (); }  

और इसे PHP में कॉल कर रहा है:

  $ client = ग्राहक :: createObject (); गूंज gettype ($ ग्राहक);  

अब $ ग्राहक का प्रकार ऑब्जेक्ट है और मैं इसे ग्राहक पर कॉल कर सकता हूं। क्या यह उचित उपाय है? यदि नहीं, तो मुझे क्या करना चाहिए?

आपको एक नज़र रखना चाहिए;)


Comments