При условии, что вы начали с генератора пакетов сайта, предоставленного Бенджамином Коттом, и установили Typo3 в режиме композитора, происходит следующее:
Часть TypoScript в пакете сайта настраивается через бэкэнд Typo3, поэтому загрузка TypoScript, а также шаблонов не зависит от автозагрузки php.
Конфигурация автозагрузки, указанная в public/typo3conf/ext/<extension>
в composer.json
и ext_emconf.php
, игнорируется composer
, поскольку composer
не знает об этих расширениях, но композитор все равно покажет ваше расширение в список расширений:
The following extensions have been added to the generated PackageStates.php file: core, extbase, fluid, frontend, fluid_styled_content, install, setup, rte_ckeditor, about, adminpanel, backend, belog, beuser, documentation, extensionmanager, felogin, filelist, form, impexp, info, recordlist, redirects, reports, saltedpasswords, scheduler, sys_note, t3editor, tstemplate, viewpage, <extension>
Даже если автозагрузка настроена правильно, композитор не может показать никакой информации о вашем добавочном номере:
composer info foo/bar
[InvalidArgumentException]
Package foo/bar not found
Так что, хотя это сбивает с толку, все, что вам нужно сделать, это включить отдельные расширения, такие как sitepackages (добавить следующее в конец вашего root composer.json
- где вы также указали вещи как "require": { "typo3/minimal": "^9.3" }
):
,
"autoload": {
"psr-4": {
"Foo\\Bar\\": "public/typo3conf/ext/<extension>/Classes/"
}
}
После этого пример, приведенный в вопросе, должен работать так, как ожидалось, и результат <foobar:some />
должен быть Hello World
.
<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers"
xmlns:foobar="http://typo3.org/ns/Foo/Bar/ViewHelpers">
<f:layout name="Default" />
<f:section name="Main">
<foobar:some />
<f:cObject typoscriptObjectPath="lib.dynamicContent" data="{colPos: '0'}" />
</f:section>
</html>