Je travaille sur une extension Magento 2 qui nécessite la lecture de fichiers à partir du système de fichiers.
Lorsque vous exécutez le renifleur php en utilisant les normes ECGM2, il se plaint du fait que j'utilise des fonctions comme basename
ou dirname
.
L'utilisation de la fonction dirname () est interdite
ou
L'utilisation de la fonction basename () est interdite
Quel emballage devrais-je utiliser à la place de ceux pour obtenir le même effet?
[EDIT]
Voici du code, mais ce n'est pas très pertinent pour la question.
J'ai une classe de collection qui étend la \Magento\Framework\Data\Collection\Filesystem
classe et je veux lister cette collection dans une grille (ui-components) et l'une des actions dans la grille est une action de téléchargement.
Pour cela, je dois obtenir le nom réel du fichier afin de pouvoir l'envoyer à l'action de téléchargement.
// 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à-dedans. Veuillez lire attentivement la question.