Dosya sisteminden dosya okuma gerektiren bazı Magento 2 uzantısı üzerinde çalışıyorum.
ECGM2 standartlarını kullanarak php sniffer'ı çalıştırırken, basename
veya 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\Filesystem
ve 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 {
...
}
basename
orada kullanılmaması gerektiğini söylüyor . Lütfen soruyu dikkatle okuyun.