Estoy trabajando en alguna extensión de Magento 2 que requiere leer archivos del sistema de archivos.
Al ejecutar el sniffer php usando los estándares ECGM2, se queja del hecho de que estoy usando funciones como basename
o dirname
.
El uso de la función dirname () está prohibido
o
El uso de la función basename () está prohibido
¿Qué envoltorio debo usar en lugar de aquellos para obtener el mismo efecto?
[EDITAR]
Aquí hay un código, pero no es tan relevante para la pregunta.
Tengo una clase de colección que extiende la \Magento\Framework\Data\Collection\Filesystem
clase y quiero enumerar esta colección en una cuadrícula (ui-components) y una de las acciones en la cuadrícula es una acción de descarga.
Para esto, necesito obtener el nombre real del archivo para poder enviarlo a la acción de descarga.
// 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
allí. Por favor lea la pregunta cuidadosamente.