मैं कुछ Magento 2 एक्सटेंशन पर काम कर रहा हूं जिसमें फाइल सिस्टम से फाइल पढ़ने की आवश्यकता है।
जब ECGM2 मानकों का उपयोग कर स्निफर php चल रहा है, यह सच है कि मैं जैसे कार्यों का उपयोग कर रहा बारे में शिकायत basename
या dirname
।
फ़ंक्शन dirname () का उपयोग निषिद्ध है
या
फ़ंक्शन बेसन () का उपयोग निषिद्ध है
समान प्रभाव प्राप्त करने के लिए मुझे क्या रैपर का उपयोग करना चाहिए?
[संपादित करें]
यहाँ कुछ कोड है, लेकिन यह सवाल के लिए प्रासंगिक नहीं है।
मेरे पास एक संग्रह वर्ग है जो कक्षा का विस्तार करता है \Magento\Framework\Data\Collection\Filesystem
और मैं इस संग्रह को ग्रिड (यूआई-घटकों) में सूचीबद्ध करना चाहता हूं और ग्रिड में एक क्रिया एक डाउनलोड कार्रवाई है।
इसके लिए, मुझे फ़ाइल का वास्तविक नाम प्राप्त करने की आवश्यकता है ताकि मैं इसे डाउनलोड क्रिया में भेज सकूं।
// here $file is dynamic and it can be
// folder/filename.xml or folder/subfolder/file.tar.gz
//so there is no strict number of folders and subfolders.
$file = $downloader->getRelativePath($packageName);
$relativeFile = UmcFilesystem::VAR_DIR_NAME . '/' .$file;
$absoluteFile = $rootDir->getAbsolutePath($relativeFile);
if ($rootDir->isFile($relativeFile) && $rootDir->isReadable($relativeFile)){
//I don't want to use `explode` just for the sake of avoiding basename
$fileName = basename($absoluteFile);
$this->fileFactory->create(
$fileName,
null,
DirectoryList::VAR_DIR,
'application/octet-stream',
$rootDir->stat($relativeFile)['size']
);
$resultRaw = $this->resultRawFactory->create();
$resultRaw->setContents($rootDir->readFile($relativeFile));
return $resultRaw;
} else {
...
}
basename
। कृपया प्रश्न को ध्यान से पढ़ें।