Контроллеры являются классами, поэтому вы можете расширить их и создать абстрактные.
Предположим, у вас есть LoveController
в My.Relationships
упаковке. Вы можете создать отдельный базовый пакет, то есть My.Life
с AbstractLifeController
внутри (php: abstract class AbstractLifeController extends \TYPO3\Flow\Mvc\Controller\ActionController
).
Теперь есть методы initialize*
(где * может быть Action, View, AnyAction и т. Д.). В вашем случае использования: protected initializeView(\TYPO3\Flow\Mvc\View\ViewInterface $view)
в этом Abstarct контролере и присвоить некоторые переменные, т.е. $view->assign('myName', $myName);
...
Тогда, когда ваш LoveController extends \My\Life\Controller\AbstractLifeController
, что переменная {myName}
будет видна в жидкости для шаблонов, используемых своими действиями.
Таким образом, вместо расширения \ TYPO3 \ Flow \ Mvc \ Controller \ ActionController для всех контроллеров, просто расширить эту абстрактную \ My \ Life \ Controller \ AbstractLifeController
Зачем вам нужен глобальный контроллер, чтобы показать имя пользователя ? Не могли бы вы дать более подробную информацию? На самом деле у вас будут полевые пользователи в вашей модели, сопоставленные с таблицей пользователей. Оттуда у вас есть доступ ко всем пользователям и их именам. – Wipster
Да, это правильно, но вам также нужно получить Пользователя в каждом отдельном контроллере. И я не хочу этого делать для каждого контроллера. Поэтому мне нужен контроллер, который всегда называется. – Pete
Моя вина! Не видел тег потока. Удалил мой ответ. – Wipster