Estou trabalhando em uma extensão do Magento 2 que requer a leitura de arquivos do sistema de arquivos.
Ao executar o php sniffer usando os padrões ECGM2, ele reclama do fato de estar usando funções como basename
ou dirname
.
É proibido o uso da função dirname ()
ou
É proibido o uso da função basename ()
Que invólucro devo usar em vez desses para obter o mesmo efeito?
[EDIT]
Aqui está um código, mas não é relevante para a questão.
Eu tenho uma classe de coleção que estende a \Magento\Framework\Data\Collection\Filesystem
classe e quero listar essa coleção em uma grade (componentes da interface do usuário) e uma das ações na grade é uma ação de download.
Para isso, preciso obter o nome real do arquivo para enviá-lo à ação de 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 {
...
}
basename
lá. Por favor, leia a pergunta com atenção.