Saya sedang mengerjakan beberapa ekstensi Magento 2 yang membutuhkan membaca file dari sistem file.
Saat menjalankan sniffer php menggunakan standar ECGM2, ia mengeluh tentang fakta bahwa saya menggunakan fungsi seperti basenameatau dirname.
Penggunaan fungsi dirname () dilarang
atau
Penggunaan fungsi basename () dilarang
Wrapper apa yang harus saya gunakan dan bukan untuk mendapatkan efek yang sama?
[EDIT]
Berikut ini beberapa kode, tetapi tidak relevan dengan pertanyaan itu.
Saya memiliki kelas koleksi yang memperluas \Magento\Framework\Data\Collection\Filesystemkelas dan saya ingin mendaftar koleksi ini dalam kotak (ui-komponen) dan salah satu tindakan dalam kotak adalah tindakan mengunduh.
Untuk ini, saya perlu mendapatkan nama file yang sebenarnya sehingga saya dapat mengirimkannya ke tindakan unduhan.
// 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 {
...
}
basenamedi sana. Silakan baca pertanyaan dengan seksama.