EntityUtils.php 977 B

123456789101112131415161718192021222324252627282930313233
  1. <?php
  2. declare(strict_types=1);
  3. namespace App\Service\Utils;
  4. use App\Annotation\OrganizationDefaultValue;
  5. use App\Entity\Access\Access;
  6. /**
  7. * Class EntityUtils : Gestion des valeurs par défauts devant être présentes dans les entités.
  8. * @package App\Service\Utils
  9. */
  10. class EntityUtils
  11. {
  12. public function defaultValueSettersByAccess($entity, Access $access)
  13. {
  14. $this->organizationDefaultValue($entity, $access);
  15. }
  16. /**
  17. * @param $entity
  18. * @throws \ReflectionException
  19. */
  20. private function organizationDefaultValue($entity, Access $access)
  21. {
  22. $reflection = new \ReflectionClass($entity::class);
  23. $organizationFaultValue = $reflection->getAttributes(OrganizationDefaultValue::class)[0] ?? null;
  24. $fieldName = $organizationFaultValue?->getArguments()['fieldName'] ?? null;
  25. if($fieldName){
  26. $entity->{sprintf('set%s', ucfirst($fieldName))}(...[$access->getOrganization()]);
  27. }
  28. }
  29. }