আমি মনে করি এটি খুব ভাল প্রশ্ন, যা ম্যাজেন্টো কীভাবে ক্লাস লোড করে তার সাথে যুক্ত connected
ম্যাজেন্টো ফাইলগুলি পরিবর্তন না করে এটি ঠিক করার কোনও ভাল উপায় নেই।
সুতরাং মূল সমস্যাটি lib / Varien / Autoload.php এ
public function autoload($class)
{
if ($this->_collectClasses) {
$this->_arrLoadedClasses[self::$_scope][] = $class;
}
if ($this->_isIncludePathDefined) {
$classFile = COMPILER_INCLUDE_PATH . DIRECTORY_SEPARATOR . $class;
} else {
$classFile = str_replace(' ', DIRECTORY_SEPARATOR, ucwords(str_replace('_', ' ', $class)));
}
$classFile.= '.php';
return include $classFile;
}
Varien_Autoload::autoload
- এই পদ্ধতিটি কেবল "পিয়ার নামকরণের সম্মেলনগুলি" অনুসরণ করে এমন ক্লাসগুলি লোড করতে পারে - Mage_Core_Model_Config
।
তবে যদি নেমস্পেস ব্যবহার $class
করা থাকে তবে এতে থাকবে Mage\\Core\\Model\\Config
।
সুতরাং আমরা আরও একটি চেক যোগ করতে পারি এবং নেমস্পেসের সমস্যাটি ঠিক করতে পারি
public function autoload($class)
{
if ($this->_collectClasses) {
$this->_arrLoadedClasses[self::$_scope][] = $class;
}
if ($this->_isIncludePathDefined) {
$classFile = COMPILER_INCLUDE_PATH . DIRECTORY_SEPARATOR . $class;
} else if (strpos($class, "\\") !== false) {
$classFile = str_replace("\\", DIRECTORY_SEPARATOR, $class);
} else {
$classFile = str_replace(' ', DIRECTORY_SEPARATOR, ucwords(str_replace('_', ' ', $class)));
}
$classFile.= '.php';
return include $classFile;
}
এখন আপনি লাইব্রেরি ব্যবহার করতে পারেন যা নেমস্পেস ব্যবহার করে।
এছাড়াও আপনি এখানে ম্যাজেন্টোতে নেমস্পেস ব্যবহার করার জন্য কোড পরিবর্তন তালিকা পাবেন।