विरासत विधि से वर्तमान कक्षा का मार्ग कैसे प्राप्त करें?वंचित वर्ग से व्युत्पन्न वर्ग का मार्ग कैसे प्राप्त करें?
<?php // file: /parentDir/class.php
class Parent {
protected function getDir() {
return dirname(__FILE__);
}
}
?>
और
<?php // file: /childDir/class.php
class Child extends Parent {
public function __construct() {
echo $this->getDir();
}
}
$tmp = new Child(); // output: '/parentDir'
?>
__FILE__
निरंतर हमेशा फ़ाइल उस में है की स्रोत-फ़ाइल को इंगित करता है, विरासत की परवाह किए बिना:
मैं निम्नलिखित है।
मैं व्युत्पन्न कक्षा के लिए पथ का नाम प्राप्त करना चाहता हूं।
क्या कोई सुरुचिपूर्ण ऐसा करने का तरीका है?
मैं $this->getDir(__FILE__);
की लाइनों के साथ कुछ कर सकता था लेकिन इसका मतलब यह होगा कि मुझे खुद को दोहराना पड़ता है। मैं एक ऐसी विधि की तलाश में हूं जो संभवतः माता-पिता वर्ग में सभी तर्क डालता है।
अद्यतन:
स्वीकृत समाधान (Palantir से):
<?php // file: /parentDir/class.php
class Parent {
protected function getDir() {
$reflector = new ReflectionClass(get_class($this));
return dirname($reflector->getFileName());
}
}
?>
हाँ, यह पलंतिर के उत्तर के साथ तार्किक निष्कर्ष है। – Jacco