Hallo @HGA
So wie ich das sehe, versuchst du, einen Frontend Controller komplett plain zu bauen (frühere pi_base). Das kann man machen, muss dann aber selbst dafür verantwortlich sein, alle Magie, die Extbase mitbringt, entsprechend selbst zu bauen. Für eine pi_base ist der Aufbau allerdings falsch, da der main() oder in deinem Fall showAction() eine vordefinierte Parameterreihenfolge hat:
/**
* @param array<array-key, mixed> $conf
*/
public function main(
string $content,
array $conf,
ServerRequestInterface $request
): string {}
Alternativ, und das ist die andere Idee, versuchst du hier einen Extbase Controller zu bauen. In dem Fall fehlt dir die KLassenerweiterung auf den ActionController.
<?php
use TYPO3\CMS\Extbase\Mvc\Controller\ActionController;
class NewsTickerController extends ActionController
{
// ...
}
Der macht dann, wie weiter oben schon erwähnt, ViewFatoryInterface und ViewFactoryData obsolet, da diese Informationen bereits von initializeAction() im ActionController korrekt gesammelt und vorbereitet werden.
Wichtig ist, dass seit TYPO3 v12 eine Action-Methode keinen string merh zurück gibt, sondern ein ResponseInterface.
Da hilft dir aber Extbase ebenfalls:
public function showAction(): ResponseInterface
// ...
$this->view->assign('news', $news);
// ...
return $this->htmlResponse();
}
Außerdem ist mir beim Schreiben dieser Zeilen aufgefallen, dass du in der foreach deine Fluid-Variablen auf $this->view assignest, was aber laut deiner Klassendeklaration gar nicht da ist, während kurz vor der Rückgabe auf eine lokale $view assigned wird und diese dann auch verwendet wird für die Rückgabe.
Schau dir meinen Input an und dann sind INformationen hjilfreich, was du überhaupt erriehcen willst (Plain Controller oder Extbase) und wie dein Controller als Plugin registriert wird. Außerdem ist die verwendete TYPO3-Version immer recht hilfreich. EDIT: Titel nochmal gelesen, Frage nach der TYPO3-Version hat sich somit erledigt.