আমি কিছু ম্যাজেন্টো 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
এটি সেখানে ব্যবহার করা উচিত নয় । প্রশ্নটি মনোযোগ সহকারে পড়ুন।