User functions (userFunc) in TYPO3 einbinden

Avatar of Andre LaniusAndre Lanius - 05. Oktober 2018 - TYPO3

Bei TYPO3 ab der Version 8.7 wurde die Einbindung von User Functions (userFunc) geändert, daher gehe ich in diesem Tutorial nicht darauf ein, wie es z.B. noch bei der TYPO3 Version 7.6 gemacht wurde. Das liegt u.a. auch daran, dass includeLibs entfernt wurde und nicht mehr unterstützt wird.

Hier mal ein Beispiel, wenn sich euer TYPO3-System im Composer Mode befindet. In der composer.json wird ganz einfach definiert, wo sich die User Functions befinden.

lib.irgendwas = USER
lib.irgendwas {
 userFunc = MyVenor\MyUserFunction\DoSomething->run
}

Und hier nun einmal die composer.json:

{
 "repositories": [
 ...
 ],
 "require": {
 "typo3/cms": "8.7.*",
 ...
 },
 "autoload": {
 "psr-4": {
 "MyVenor\\MyUserFunction\\": "fileadmin/userfunctions"
 }
 }
}

Und so könnte die PHP-Datei mit der User Function aussehen.

<?php
namespace MyVenor\MyUserFunction;

/**
 * DoSomething
 */
class DoSomething
{

 /**
 * @param string $content
 * @param array $configuration
 * @return string
 */
 public function run(string $content = '', array $configuration = []): string)
 {
 return 'meine Ausgabe';
 }
}

Anschließend müsste die Autoload-Datei über den Composer neu erstellt werden und das geht ganz einfach über den folgenden Befehl.

composer dump-autoload

Falls sich euer TYPO3-System nicht im Composer Mode befindet, müsstet ihr zur Einbindung einer User Function eine eigene kleine Extension erstellen, um individuelle Funktionen ins TYPO3 zu integrieren.

Neuer Kommentar

0 Kommentare