No puede seleccionar más de 25 temas Los temas deben comenzar con una letra o número, pueden incluir guiones ('-') y pueden tener hasta 35 caracteres de largo.

ApplicationDefinition.php 2.4KB

hace 2 años
hace 2 años
hace 2 años
hace 2 años
hace 2 años
hace 2 años
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  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. }