Ich arbeite an einer Magento 2-Erweiterung, die das Lesen von Dateien aus dem Dateisystem erfordert.
Wenn der PHP-Sniffer unter Verwendung der ECGM2-Standards ausgeführt wird, beschwert er sich über die Tatsache, dass ich Funktionen wie basename
oder verwende dirname
.
Die Verwendung der Funktion dirname () ist verboten
oder
Die Verwendung der Funktion basename () ist verboten
Welchen Wrapper sollte ich anstelle dieser verwenden, um den gleichen Effekt zu erzielen?
[BEARBEITEN]
Hier ist ein Code, der jedoch für die Frage nicht so relevant ist.
Ich habe eine Sammlungsklasse, die die \Magento\Framework\Data\Collection\Filesystem
Klasse erweitert, und ich möchte diese Sammlung in einem Raster (UI-Komponenten) auflisten. Eine der Aktionen im Raster ist eine Download-Aktion.
Dazu muss ich den tatsächlichen Namen der Datei erhalten, damit ich sie an die Download-Aktion senden kann.
// 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
werden sollte. Bitte lesen Sie die Frage sorgfältig durch.