Ошибка Typo3 произошла после установки расширения: Ошибка синтаксического анализа: синтаксическая ошибка
Я запускаю Typo3 7.6 и по глупости попробовал устаревшее расширение на своем сайте. Я получил одну ошибку, попытался удалить расширение, и это только ухудшило ситуацию. Теперь вся система разбивается сзади и спереди с этой ошибкой:
Ошибка синтаксического анализа: синтаксическая ошибка, неожиданный '=' в /html/typo3/typo3_src-7.6.10/typo3/sysext/core/Classes/Utility/ExtensionManagementUtility.php в строке 1654
Не уверен, что он хочет, чтобы я сделал с этим информация.
Вот мой код в ExtensionManagementUtility.php в режиме онлайн 1654:
/**
* Execute ext_localconf.php files from extensions
*
* @return void
*/
protected static function loadSingleExtLocalconfFiles()
{
// This is the main array meant to be manipulated in the ext_localconf.php files
// In general it is recommended to not rely on it to be globally defined in that
// scope but to use $GLOBALS['TYPO3_CONF_VARS'] instead.
// Nevertheless we define it here as global for backwards compatibility.
global $TYPO3_CONF_VARS;
foreach ($GLOBALS['TYPO3_LOADED_EXT'] as $_EXTKEY => $extensionInformation) {
if ((is_array($extensionInformation) || $extensionInformation instanceof \ArrayAccess) && isset($extensionInformation['ext_localconf.php'])) {
// $_EXTKEY and $_EXTCONF are available in ext_localconf.php
// and are explicitly set in cached file as well
$_EXTCONF = isset($GLOBALS['TYPO3_CONF_VARS']['EXT']['extConf'][$_EXTKEY]) ? $GLOBALS['TYPO3_CONF_VARS']['EXT']['extConf'][$_EXTKEY] : null;
require $extensionInformation['ext_localconf.php'];
}
}
}
Как мне выбраться из этой передряги?
2 answers
Если вы просто хотите восстановить свою установку, вам необходимо деактивировать это новое расширение.
Вы можете попробовать сделать это в инструменте установки (просто позвоните в свой домен.tld/typo3/install/): в области "Важные действия" вы можете найти опцию Проверить наличие поврежденных расширений
Или вы делаете это вручную: отредактируйте typo3conf/PackageStates.php
, найдите это расширение и измените состояние с active
на inactive
. затем очистите все кэши!
После этого вы можете удалить расширение.
Похоже, что эта проблема возникает из-за одного из включенных файлов, т.Е. конфигурации одного из ваших расширений. Я не понимаю, почему PHP тогда не отображает фактическое имя файла, но хорошо… давайте попробуем это исправить:
Чтобы получить имя файла, вставьте строку перед require…
для его вывода:
echo $_EXTKEY, " ", $extensionInformation['ext_localconf.php'], "\n";
require $extensionInformation['ext_localconf.php'];
После перезагрузки вы должны увидеть список ключей расширения и имен файлов, причем последний из них является причиной проблемы.