扩展支持多个版本
当创建用于商业用途的扩展时,如果它可以在多个Magento版本上工作,可能还不错,也许还有CE和EE。 但是有时这不能按计划进行,因为核心会随着版本的变化而变化。 我的问题是,我应该如何处理影响我的扩展的微小核心变更。我并不是在谈论需要重构的巨大变化。 这是一个使它更清楚的示例。 从CE 1.8.1(和EE 1.13.1)开始,该方法Varien_Io_File::write改变了它的工作方式(签名相同),并且该方法的filePutContent作用类似于write以前的操作。 现在,我做些骇人听闻的事情,并检查Magento的版本,以了解使用哪种方法来达到相同的结果 /** @var Varien_Io_File $io */ if (version_compare(Mage::getVersion(), '1.8.1', '<')) { $io->write($destinationFile, $contents, 0777); } else { $io->filePutContent($destinationFile, $contents); } 现在,我希望它也可以在EE上工作。由于1.8.1专门针对CE,因此变得更加难看。所以上面的代码变成 /** @var Varien_Io_File $io */ if (version_compare(Mage::getVersion(), $this->getCurrentVersion(), '<')) { $io->write($destinationFile, $contents, 0777); } else { $io->filePutContent($destinationFile, $contents); } 方法getCurrentVersion看起来像这样 public function …