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 basenameo 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\Filesystemclase 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 {
...
}
basenameallí. Por favor lea la pregunta cuidadosamente.