我正在获得以下堆栈跟踪,在尝试解析引导类时看起来好像是PHP chokes:
<pre>uncaught exception: <b>Class String could not be loaded</b><br /><br />in file: /path/to/haxe-php-lib/lib/php/Boot.class.php line 751<br />#0 [internal function]: spl_autoload('String')
#1 /path/to/haxe-php-lib/lib/php/Boot.class.php(751): property_exists('String', '__meta__')
#2 /path/to/haxe-php-lib/lib/php/Boot.class.php(857): _hx_type->__construct('String', 'String')
#3 /path/to/NativePHPUtil.php(334): require_once('/path/to/haxe-php-lib/include.php') //include.php is basically `require_once dirname(__FILE__).'/lib/php/Boot.class.php'; restore_exception_handler();`
#4 [internal function]: NativePHPUtil->addRecord('record-name', 'record-type', Object(stdClass))
#5 /path/to/NativePHPController.php(244): call_user_func_array(Array, Array)
#6 /path/index.php(89): NativePHPController->handle()
#7 {main}</pre>
来自Boot.class.php
(751)的功能:
public function __construct($cn, $qn, $path = null) {
$this->__tname__ = $cn;
$this->__qname__ = $qn;
$this->__path__ = $path;
if(property_exists($cn, '__meta__'))
$this->__meta__ = eval($cn.'::$__meta__');
}
似乎没有使用haxe-php-lib
,只是加载必要的文件。所以我尝试关闭PHP的死代码删除并恢复直接使用require_once dirname(__FILE__).'/lib/php/Boot.class.php'
,没有快乐。
这几天前我的测试服务器(Debian上的PHP 5.3)刚刚开始发生,并且没有明显的变化来提示问题。我试过从Git中删除一份新副本并摆弄权限。
spl_autoload('String')
在做什么?有什么可能导致问题的猜测?
更新我们注释掉了if语句,一切似乎都运转得很好....