Typo3 8.7: Не удалось проанализировать класс: возможно, не загружен или отсутствует автозагрузчик?Продолжает приходить и уходить - PullRequest
0 голосов
/ 17 декабря 2018

У меня была эта проблема, как видно из названия в прошлом, и я всегда решал эту проблему, добавляя автозагрузчик psr-4 в emconf и просто повторно активируя свои расширения.

Теперь я сталкиваюсь с той же проблемой:

Could not analyse class: maybe not loaded or no autoloader?

, но я установил автозагрузчик, как всегда, правильно.Это также происходит в более чем одном расширении прямо сейчас. После удаления php-кэша в инструменте установки, удаления дампа из автозагрузки и повторной активации моего расширения ошибка исчезла в течение некоторого времени, через пару часов снова и снова. Поэтому я думаю, что этодолжен иметь какое-то отношение к временным файлам, но я не могу понять, что именно ..

У кого-нибудь есть решение?Я видел много тем по этой проблеме в stackoverflow, я использовал их в прошлом, но, к сожалению, ни одна из них не работает для меня сейчас.

Важный факт: эта ошибка сейчас происходит на моем новом сервере.На моем старом сервере (с тем же кодом в расширениях) этого не произошло, и они работали нормально.

Заранее спасибо.

Редактировать: Vendornames и т. Д. Установлены правильно, и естьнет ошибок в синтаксисе вообще.Как я уже сказал, расширения работали нормально.

Edit2: я только что нашел этот журнал изменений Typo3:

https://docs.typo3.org/typo3cms/extensions/core/Changelog/8.4/Breaking-78222-ExtensionAutoloadInformationIsNowInTypo3confautoload.html

Но нет никакого решения для воздействия ни для одногокомпозиторские инсталляции.Может ли кто-нибудь предоставить мне один?

Ответы [ 3 ]

0 голосов
/ 18 декабря 2018

Вы оставили какую-либо конфигурацию в вашем ext_tables.php?

Поскольку конфигурация TCA, которая кэшируется, ожидается в Configuration/TCA/[Override/], любой код в ext_tables.php может быть потерян.

Если вы хотите, чтобы какая-то конфигурация выполнялась для каждого запуска, вы должны поместить ее в ext_localconf.php

0 голосов
/ 19 декабря 2018

Спасибо за помощь, теперь я сам нашел решение.

На самом деле это не было вызвано какой-либо конфигурацией автозагрузчика, но и old version of fpdf, что, очевидно, привело к тому, что два расширения не загружали свои классы должным образом.Исключение было просто обманчивым.У меня upgraded the version of fpdf, и теперь он работает правильно.Мне непонятно, почему тот же код работал неделю назад, а теперь он потерпел неудачу, но, по крайней мере, я нашел решение своей проблемы.

0 голосов
/ 17 декабря 2018

Когда вы используете composer install и используете расширения, которые не устанавливаются через composer, вам нужно добавить информацию об автозагрузке в корневой каталог composer.json вашего проекта, а затем запустить composer dump-autoload.(ext_emconf.php не работает в режиме композитора?)

{
    ...
    "autoload": {
        "psr-4": {
            "Vendor\\ExtensionNameA\\": "public/typo3conf/ext/extension_name_a/Classes",
            "Vendor\\ExtensionNameB\\": "public/typo3conf/ext/extension_name_b/Classes"
        }
    }
}

Возможное объяснение странного момента времени "работает, а позже нет".Возможно, это как-то связано с красной кнопкой очистки кэша в бэкенде TYPO3 (Очистить все кэши).Может быть, это не работает, когда вы нажмете эту кнопку, и файлы кэша будут очищены.Затем вам нужно переустановить расширения, чтобы автозагрузчик работал «временно», пока вы снова не нажмете кнопку очистки всех кешей.С решением, которое я упомянул выше, оно работает перманентно.

...