ฉันกำลังทำงานกับส่วนขยายของ Magento 2 ที่ต้องอ่านไฟล์จากระบบไฟล์
เมื่อใช้ PHP ดมกลิ่นโดยใช้มาตรฐาน ECGM2 ก็บ่นเกี่ยวกับความจริงที่ว่าฉันใช้ฟังก์ชั่นเหมือนหรือ basename
dirname
ห้ามใช้ฟังก์ชั่น dirname ()
หรือ
ห้ามใช้งานฟังก์ชันพื้นฐาน ()
ฉันควรใช้ wrapper แบบไหนเพื่อให้ได้เอฟเฟกต์เดียวกัน
[แก้ไข]
นี่คือรหัสบางส่วน แต่ไม่เกี่ยวข้องกับคำถาม
ฉันมีคลาสคอลเล็กชันที่ขยาย\Magento\Framework\Data\Collection\Filesystem
คลาสและฉันต้องการแสดงรายการคอลเล็กชันนี้ในกริด (องค์ประกอบ UI) และหนึ่งในแอ็คชั่นในกริดคือการดาวน์โหลด
สำหรับสิ่งนี้ฉันต้องได้รับชื่อจริงของไฟล์เพื่อที่ฉันจะได้ส่งไฟล์ไปยังการดำเนินการดาวน์โหลด
// 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
ในที่นั่น โปรดอ่านคำถามอย่างระมัดระวัง