src/Subscriber/User/Registration/MemberCreatedSubscriber.php line 40

Open in your IDE?
  1. <?php
  2. /*
  3.  * Author: Dominik Piekarski <code@dompie.de>
  4.  * Created at: 2020/08/12 11:20
  5.  */
  6. declare(strict_types=1);
  7. namespace App\Subscriber\User\Registration;
  8. use App\Entity\Member;
  9. use App\Event\User\MemberCreatedEvent;
  10. use App\Service\ActivityFeedService;
  11. use App\Service\Property\MemberPropertyService;
  12. use App\Service\User\AccountService;
  13. use Psr\Log\LoggerInterface;
  14. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  15. class MemberCreatedSubscriber implements EventSubscriberInterface
  16. {
  17.     protected ActivityFeedService $service;
  18.     protected MemberPropertyService $mps;
  19.     protected LoggerInterface $logger;
  20.     public function __construct(ActivityFeedService $serviceMemberPropertyService $mpsLoggerInterface $logger)
  21.     {
  22.         $this->service $service;
  23.         $this->mps $mps;
  24.         $this->logger $logger;
  25.     }
  26.     public static function getSubscribedEvents(): array
  27.     {
  28.         return [
  29.             MemberCreatedEvent::class => [
  30.                 ['onMemberCreated'0],
  31.             ],
  32.         ];
  33.     }
  34.     public function onMemberCreated(MemberCreatedEvent $event)
  35.     {
  36.         $this->createUsernameChangeProperty($event->getMember());
  37.     }
  38.     private function createUsernameChangeProperty(Member $member): void
  39.     {
  40.         try {
  41.             $this->mps->createPropertyEntity($memberAccountService::PROPERTY_ACCOUNT_USERNAME_CHANGE_PERMITTED1);
  42.             return;
  43.         } catch (\Throwable $t) {
  44.             $this->logger->error($t->getMessage().PHP_EOL.$t->getTraceAsString());
  45.         }
  46.         $property $this->mps->getPropertyForMember($memberAccountService::PROPERTY_ACCOUNT_USERNAME_CHANGE_PERMITTED);
  47.         try {
  48.             $this->mps->updatePropertyValue($property1);
  49.         } catch (\Throwable $t) {
  50.             $this->logger->error($t->getMessage().PHP_EOL.$t->getTraceAsString());
  51.         }
  52.     }
  53. }