क्या दो अलग-अलग, असंबंधित इंटरफेस के लिए संकेत टाइप करने के लिए PHP में कोई तरीका है? उदाहरण के लिए:एकाधिक असंबद्ध इंटरफेस के लिए संकेत टाइपिंग
interface errorable {
function error($msg);
}
interface recordable {
ssh_for_recorder();
}
class uploader__module extends base__module implements errorable, recordable {
public function ssh_for_recorder() {
return new ssh2;
}
public function error($msg) {
$this->errors[] = $msg;
}
public function upload() {
$recorder = new recorder($this);
$recorder->run();
}
}
class recorder {
private $ssh2;
private $module;
private function upload() {
if (!$this->ssh2) {
$this->module->error("No SSH2 connection");
}
}
public function __construct({recordable,errorable} $module) {
$this->module = $module;
$this->ssh2 = $module->ssh_for_recorder();
}
}
आप उपरोक्त कोड में देख सकते हैं, रिकॉर्डर वर्ग अपनी मॉड्यूल error()
और ssh_for_recorder()
दोनों है, लेकिन इन अलग इंटरफेस द्वारा परिभाषित कर रहे चलाने की क्षमता की अपेक्षा करता है। त्रुटि योग्य रिकॉर्ड करने योग्य नहीं है और इसके विपरीत।
क्या ऐसा करने के लिए कोई अच्छा अभ्यास है? मैं एक इंटरफ़ेस बनाने की सोच रहा था जो रिकॉर्ड करने योग्य और त्रुटिपूर्ण से विस्तारित करता है और अपलोड__ मॉड्यूल को कार्यान्वित करता है, लेकिन मुझे नहीं पता कि इसे क्या कॉल करना है।
टाइपिंग संकेत के साथ इसका क्या संबंध है? – Hamish
रिकॉर्डर के लिए निर्माता देखें। मैं दोनों रिकॉर्ड करने योग्य और त्रुटि योग्य संकेत लिखना चाहता हूं। –
मुझे लगता है कि @ हैमिश भ्रमित हो रहा है, PHP में संकेत देने के लिए कक्षा को एक निश्चित प्रकार का होना आवश्यक है, जहां @tandu को गुणांक प्रकारों के इंटरफेस की जांच करने की आवश्यकता होती है। – RobertPitt