Я работаю над расширением Magento 2, которое требует чтения файлов из файловой системы.
При запуске сниффера php с использованием стандартов ECGM2 он жалуется на то, что я использую такие функции, как basename
или dirname
.
Использование функции dirname () запрещено
или
Использование функции basename () запрещено
Какую обертку я должен использовать вместо тех, чтобы получить тот же эффект?
[РЕДАКТИРОВАТЬ]
Вот код, но это не имеет отношения к вопросу.
У меня есть класс коллекции, который расширяет \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
. Пожалуйста, внимательно прочитайте вопрос.