Я получаю следующую трассировку стека, которая выглядит так, как если бы PHP пытался разобрать загрузочный класс:
<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'
прямо, без радости
Это только начало происходить на моем тестовом сервере (PHP 5.3 на Debian) несколько дней назад, и не было никаких очевидных изменений, чтобы вызвать проблему. Я попытался вытащить свежую копию из Git и возиться с разрешениями.
Что такое spl_autoload('String')
делать? Есть предположения о том, что может быть причиной проблемы?
Обновить Мы прокомментировали утверждение if, и все, кажется, работает просто отлично ….
Задача ещё не решена.
Других решений пока нет …