Dosya sisteminden dosya okuma gerektiren bazı Magento 2 uzantısı üzerinde çalışıyorum.
ECGM2 standartlarını kullanarak php sniffer'ı çalıştırırken, basenameveya gibi işlevleri kullandığımdan şikayet ediyor dirname.
Dirname () işlevinin kullanılması yasaktır
veya
Basename () işlevinin kullanılması yasaktır
Aynı etkiyi elde etmek için bunların yerine hangi ambalajı kullanmalıyım?
[EDIT]
İşte bazı kod, ama soru ile ilgili değil.
Sınıfı genişleten bir koleksiyon sınıfı var \Magento\Framework\Data\Collection\Filesystemve bu koleksiyonu bir kılavuzda (ui-bileşenleri) listelemek istiyorum ve kılavuzdaki eylemlerden biri bir indirme eylemidir.
Bunun için indirme eylemine gönderebilmem için dosyanın gerçek adını almam gerekiyor.
// 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 {
...
}
basenameorada kullanılmaması gerektiğini söylüyor . Lütfen soruyu dikkatle okuyun.