我的一个客户报告说他们的 Magento 系统中的一些代码存在一个奇怪的问题(Magento 是一个用 PHP 编写的电子商务平台)。我无法直接访问系统进行调试和调试,所以我想我会问 Stack Overflow,如果你见过这样的事情。
他们偶尔看到的错误是
Warning: include(O1ucm02owqn3iwwcx5osz2m2.php): failed to open stream:
调用堆栈包括
#0 /Users/theirusername/Sites/project/lib/Varien/Autoload.php(93): mageCoreErrorHandler(2, 'include(O1ucm02...', '/Users/theiruse...', 93, Array)
#1 /Users/theirusername/Sites/project/lib/Varien/Autoload.php(93): Varien_Autoload::autoload()
#2 [internal function]: Varien_Autoload->autoload('o1ucm02owqn3iww...')
#3 [internal function]: spl_autoload_call('o1ucm02owqn3iww...')
#4 /Users/theirusername/Sites/project/app/code/local/Theirname/Commercebug/Model/Observer.php(191): defined('Mage_Core_Block...')
由此,我可以推断 PHP 认为它需要实例化一个名为O1ucm02owqn3iwwcx5osz2m2
. 但是,我无法弄清楚为什么PHP 可能会这样做。触发错误的行(调用堆栈中的#4,在第 191 行附近Observer.php
)应该是
if(defined("Mage_Core_Block_Template::XML_PATH_DEBUG_TEMPLATE_HINTS"))
{
$path = Mage_Core_Block_Template::XML_PATH_DEBUG_TEMPLATE_HINTS;
}
这些行似乎没有提到任何命名的 PHP 类O1ucm02owqn3iwwcx5osz2m2
(我说“应该”,因为客户自己部署了代码,我正在与他们合作以获取副本以查找潜在问题)。
有谁知道会发生什么?这是某个版本的已知 PHP 错误/问题和/或是否有人看到与 PHP 自动加载器defined
//类常量类似的问题?
(我正在与我的客户一起确定他们正在运行的 PHP 版本,并获取他们部署的文件的副本,以确保它们与我假设的内容相匹配。)