Ваш контроллер имеет защищенное свойство, которое по умолчанию имеет значение Fluid, изменить его на что-то еще очень просто:
protected $viewFormatToObjectNameMap = array('json' => '\TYPO3\FLOW3\MVC\View\JsonView');
Теперь взгляните на EmptyController в том же каталоге: \ TYPO3 \ FLOW3 \MVC \ View \
Вы можете использовать это как начало.Что вам в основном нужно сделать, так это удовлетворить метод назначений, способ передачи переменных в вашу тему.
Далее, придумайте несколько стандартизаций (например, файлы-шаблоны должны находиться в папке\ Resources \ Private \ Templates \ ControllerName \ ActionName.phtml, обратите внимание на расширение файла) и скажите, какая переменная будет доступна там (например, $ view).
Теперь очень простой подход будет выглядеть так:
protected $view = array();
public function assign($key, $value) {
$this->view[$key] = $value;
}
public function render() {
$this->controllerContext->getResponse()->setHeader('Content-Type', 'text/html');
$view = $this->view;
ob_start();
include_once($this->getTemplatePathAndFilename());
$output = ob_get_contents();
ob_end_clean();
return $output;
}
}
Для функции $ this-> getTemplatePathAndFilename () вы можете использовать код из метода TYPO3 \ Fluid \ View \ TemplateView-> getTemplatePathAndFilename () и настроить его в соответствии со своими потребностями.
Вваши файлы шаблонов, теперь вы можете использовать переменную $ view.
Я нахожусь у моих родителей на Пасху, и у них нет среды выполнения, так что это не проверено, и вы, скорее всего, столкнетесь с проблемами, но этодолжен начать!