Я працюю над розширенням Magento 2, яке вимагає зчитування файлів з файлової системи.
Під час запуску php sniffer з використанням стандартів ECGM2 він скаржиться на те, що я використовую такі функції, як basename
або dirname
.
Використання функції dirname () заборонено
або
Використання базової функції функції () заборонено
Яку обгортку я повинен використовувати замість тих, щоб отримати той самий ефект?
[EDIT]
Ось якийсь код, але це не так важливо для питання.
У мене є клас колекції, який розширює \Magento\Framework\Data\Collection\Filesystem
клас, і я хочу перерахувати цю колекцію в сітці (ui-компоненти), і одне з дій у сітці - це дія завантаження.
Для цього мені потрібно отримати власне ім’я файлу, щоб я міг надіслати його до дії завантаження.
// 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
там. Будь ласка, уважно прочитайте питання.