ファイルシステムからファイルを読み取る必要があるMagento 2拡張機能に取り組んでいます。
ECGM2標準を使用してphpスニファを実行すると、basename
またはのような関数を使用しているという事実について文句を言いdirname
ます。
関数dirname()の使用は禁止されています
または
関数basename()の使用は禁止されています
同じ効果を得るには、これらの代わりにどのラッパーを使用する必要がありますか?
[編集]
ここにいくつかのコードがありますが、質問にはそれほど関係ありません。
クラスを拡張するコレクションクラスがあり\Magento\Framework\Data\Collection\Filesystem
、グリッド(ui-components)にこのコレクションを一覧表示したいのですが、グリッド内のアクションの1つはダウンロードアクションです。
このため、ファイルの実際の名前を取得して、ダウンロードアクションに送信できるようにする必要があります。
// 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
そこで使用すべきではないと言っています。質問をよく読んでください。