Как установить пользовательское значение в BlameableListener в контексте приложения Zend Expressive? - PullRequest
0 голосов
/ 08 февраля 2019

Как установить пользовательское значение на Gedmo\Blameable\BlameableListener в приложении Zend Expressive?

Подписчики событий успешно добавлены в EventManager (см. Файл конфигурации).TimestampableListener работает как положено.

/ config / autoload / doctrine.local.php

<?php

declare(strict_types = 1);

use Gedmo\Blameable\BlameableListener;
use Gedmo\Timestampable\TimestampableListener;

return [
    'doctrine' => [
        // [..]
        'event_manager' => [
            'orm_default' => [
                'subscribers' => [
                    BlameableListener::class,
                    TimestampableListener::class,
                ],
            ],
        ],
    ],
];

бэкэнд / Приложение / Сущность / Роль.php

<?php

namespace App\Entity;

use Doctrine\ORM\Mapping as ORM;
use Gedmo\Blameable\Traits\BlameableEntity;
use Gedmo\Timestampable\Traits\TimestampableEntity;

/**
 * @ORM\Entity()
 * @ORM\Table(name="role")
 */
class Role
{
    use TimestampableEntity;
    use BlameableEntity;

    /**
     * @ORM\Id()
     * @ORM\Column(name="id", type="guid")
     * @ORM\GeneratedValue(strategy="UUID")
     * @var string
     */
    private $id;

    /**
     * @ORM\Column(name="name", type="string")
     * @var string
     */
    private $name;

    // [..]
}

В документации указано:

Обратите внимание, что вам нужно настроить пользователя на BlameableListener (если вы не используетерасширение Symfony2, которое автоматически назначает текущего пользователя контекста безопасности).

Я не уверен, как это реализовать.Где-то я мог бы определить вызываемый или класс, который обрабатывает установку пользовательского значения, но как?

1 Ответ

0 голосов
/ 14 февраля 2019

Я решил это, определив BlameableUserValueHandlerInterface.Который должен быть реализован и передан промежуточному программному обеспечению аутентификации.Промежуточное программное обеспечение предоставляет текущий идентификатор BlameableUserValueHandler, который присваивает его пользовательскому значению в BlameableListener.

...