* * Details * ======= * * In the AssetCollector, the "identifier" attribute is used as a unique identifier. Thus, if modules are added multiple * times using the same module identifier, the asset will only be served once. * * @see https://docs.typo3.org/permalink/t3viewhelper:typo3-fluid-asset-module */ final class ModuleViewHelper extends AbstractViewHelper { public function __construct( private readonly AssetCollector $assetCollector, ) {} public function initializeArguments(): void { parent::initializeArguments(); $this->registerArgument('identifier', 'string', 'Bare module identifier like "@my/package/filename.js".', true); } public function render(): string { $identifier = (string)$this->arguments['identifier']; $this->assetCollector->addJavaScriptModule($identifier); return ''; } }