मुझे लगता है कि यह एक बहुत अच्छा सवाल है, जो मैगेंटो लोड कक्षाओं के साथ जुड़ा हुआ है।
Magento फ़ाइलों को बदले बिना इसे ठीक करने का कोई अच्छा तरीका नहीं है।
तो मुख्य समस्या 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;
}
अब आप पुस्तकालयों का उपयोग कर सकते हैं जो नाम स्थान का उपयोग करते हैं।
इसके अलावा यहां आपको Magento में नामस्थान का उपयोग करने के लिए कोड परिवर्तन सूची मिलेगी।