Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

87 lines
2.4KB

  1. <?php
  2. namespace Lc\SovBundle\Definition;
  3. use Lc\SovBundle\Container\File\FileContainer;
  4. use Lc\SovBundle\Container\Newsletter\NewsletterContainer;
  5. use Lc\SovBundle\Container\Reminder\ReminderContainer;
  6. use Lc\SovBundle\Container\Setting\SiteSettingContainer;
  7. use Lc\SovBundle\Container\Site\NewsContainer;
  8. use Lc\SovBundle\Container\Site\PageContainer;
  9. use Lc\SovBundle\Container\Site\SiteContainer;
  10. use Lc\SovBundle\Container\Ticket\TicketContainer;
  11. use Lc\SovBundle\Container\Ticket\TicketMessageContainer;
  12. use Lc\SovBundle\Container\User\GroupUserContainer;
  13. use Lc\SovBundle\Container\User\UserContainer;
  14. use function Symfony\Component\String\u;
  15. class ApplicationDefinition
  16. {
  17. public static function getContainerList(): array
  18. {
  19. return [
  20. FileContainer::class,
  21. NewsletterContainer::class,
  22. ReminderContainer::class,
  23. NewsContainer::class,
  24. PageContainer::class,
  25. SiteContainer::class,
  26. TicketContainer::class,
  27. TicketMessageContainer::class,
  28. GroupUserContainer::class,
  29. UserContainer::class,
  30. SiteSettingContainer::class
  31. ];
  32. }
  33. public function getContainerByEntityFqcn(string $entityFqcn)
  34. {
  35. foreach (static::getContainerList() as $containerFqcn){
  36. if($this->isContainerManageEntity($containerFqcn)){
  37. if ($containerFqcn::getEntityFqcn() == $entityFqcn) {
  38. return $containerFqcn;
  39. }
  40. }
  41. }
  42. return null;
  43. }
  44. public function isContainerManageEntity(string $containerFqcn)
  45. {
  46. if(method_exists($containerFqcn, 'getEntityFqcn') ){
  47. return true;
  48. }
  49. return false;
  50. }
  51. public static function getSubscribedContainerServices(): array
  52. {
  53. $array = [];
  54. foreach (static::getContainerList() as $container) {
  55. $array[$container] = $container;
  56. }
  57. return $array;
  58. }
  59. public static function getContainerListForTwigGlobals(): array
  60. {
  61. $array = [];
  62. foreach (static::getContainerList() as $containerNamespace) {
  63. //récupère le nom du fichier dans le namespace du container
  64. $key = u(substr($containerNamespace, strrpos($containerNamespace, '\\')))->snake();
  65. $array[$key->toString()] = '@' . $containerNamespace;
  66. }
  67. return $array;
  68. }
  69. }