আমি কিছু ম্যাজেন্টো 2 এক্সটেনশনে কাজ করছি যার জন্য ফাইল সিস্টেম থেকে ফাইলগুলি পড়া দরকার।
ইসিজিএম 2 স্ট্যান্ডার্ড ব্যবহার করে পিএইচপি স্নিফার চালানোর সময়, আমি basenameবা এর মতো ফাংশন ব্যবহার করছি এই বিষয়ে অভিযোগ করে dirname।
ফাংশন ডেরনাম () ব্যবহার নিষিদ্ধ
অথবা
ফাংশন বেসনেম () ব্যবহার নিষিদ্ধ
একই প্রভাব পেতে আমি তাদের পরিবর্তে কী আবরণ ব্যবহার করব?
[সম্পাদনা]
এখানে কিছু কোড রয়েছে তবে এটি প্রশ্নের সাথে প্রাসঙ্গিক নয়।
আমার একটি সংগ্রহ শ্রেণি রয়েছে যা ক্লাসটি প্রসারিত করে \Magento\Framework\Data\Collection\Filesystemএবং আমি এই সংগ্রহটি একটি গ্রিডে (ইউআই-উপাদান) তালিকাভুক্ত করতে চাই এবং গ্রিডের ক্রিয়াকলাপগুলির মধ্যে একটি হ'ল ডাউনলোড ক্রিয়া।
এর জন্য, আমার ফাইলটির আসল নামটি নেওয়া দরকার যাতে আমি এটি ডাউনলোড ক্রিয়ায় প্রেরণ করতে পারি।
// 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এটি সেখানে ব্যবহার করা উচিত নয় । প্রশ্নটি মনোযোগ সহকারে পড়ুন।