Sto lavorando su alcune estensioni di Magento 2 che richiedono la lettura di file dal file system.
Quando si esegue lo sniffer php utilizzando gli standard ECGM2, si lamenta del fatto che sto usando funzioni come basenameo dirname.
L'uso della funzione dirname () è proibito
o
L'uso della funzione basename () è vietato
Quale wrapper dovrei usare al posto di quelli per ottenere lo stesso effetto?
[EDIT]
Ecco un po 'di codice, ma non è così rilevante per la domanda.
Ho una classe di raccolta che estende la \Magento\Framework\Data\Collection\Filesystemclasse e voglio elencare questa raccolta in una griglia (componenti ui) e una delle azioni nella griglia è un'azione di download.
Per questo, ho bisogno di ottenere il nome effettivo del file in modo da poterlo inviare all'azione di download.
// 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 {
...
}
basenamelì. Si prega di leggere attentamente la domanda.