Трейты - фрагменты кода, оторванные от контекста и их можно использовать в самых разных местах. Они добавляют свои методы к вашим собственным классам. Так, при разработке расширений порой нужно работать с текущим пользователем сайта: гость он или авторизованный? Если авторизованный, то к какой группе доступа принадлежит? И так далее.
Начиная с Joomla 4.2 в ядре появился трейт CurrentUserTrait, который добавляет к классу вашего плагина, хелпера и т.д. - 2 метода getCurrentUser()
и setCurrentUser()
. В геттере (getCurrentUser()
) под капотом проверяется назначен ли текущий пользователь и если нет, то он получается из объекта Приложения.
Как использовать трейт CurrentUserTrait в Joomla?
<?php
use Joomla\CMS\User\CurrentUserTrait;
final class Wtcategory extends FieldsPlugin implements SubscriberInterface
{
use DatabaseAwareTrait;
use CurrentUserTrait;
public function MyMethod()
{
$user = $this->getCurrentUser();
}
}
И таким образом можно меньше следить за актуальностью кодовой базы на данном участке, так как тут используется функционал ядра.