私の顧客は、Magentoシステムの一部のコードに奇妙な問題があると報告しています(MagentoはPHPで記述されたeコマースプラットフォームです)。私はシステムに直接アクセスして調べたりデバッグしたりすることができないので、このようなものを見たことがあれば、StackOverflowに聞いてみようと思いました。
彼らが時々見ているエラーは
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のバージョンを確認し、展開したファイルのコピーを取得して、私が想定しているものと一致するようにしています。)