src/App/EventListener/Central/ClientPostListener.php line 30

Open in your IDE?
  1. <?php
  2. namespace App\EventListener\Central;
  3. use App\Entity\Central\Client\Client;
  4. use App\EventListener\GenericEvent;
  5. use App\Model\ShellExec;
  6. use App\Service\Central\Client\ClientFlagManager;
  7. use App\Service\Central\Client\ClientManager;
  8. use App\Service\ShellExecManager;
  9. use Symfony\Bundle\FrameworkBundle\Console\Application;
  10. use Symfony\Component\Console\Input\ArrayInput;
  11. use Symfony\Component\Console\Output\BufferedOutput;
  12. use Symfony\Component\HttpKernel\KernelInterface;
  13. class ClientPostListener
  14. {
  15.     private $kernel;
  16.     private $shellExecManager;
  17.     private $clientManager;
  18.     public function __construct(ShellExecManager $shellExecManagerKernelInterface $kernelClientManager $clientManager)
  19.     {
  20.         $this->kernel $kernel;
  21.         $this->shellExecManager $shellExecManager;
  22.         $this->clientManager $clientManager;
  23.     }
  24.     public function post(GenericEvent $genericEvent)
  25.     {
  26.         $client $genericEvent->getSubject();
  27.         if (!$client instanceof Client || $client->getId() === null) {
  28.             return;
  29.         }
  30.         $shellExec = new ShellExec('doctrine:schema:update''--clientID='.$client->getId().' --schemas=client --force');
  31.         $this->shellExecManager->runShellExec($shellExectrue);
  32.         $this->resolveEshop($client);
  33.     }
  34.     public function update(GenericEvent $genericEvent)
  35.     {
  36.         $client $genericEvent->getSubject();
  37.         if(!$client instanceof Client || $client->getId() === null) {
  38.             return;
  39.         }
  40.         $this->resolveEshop($client);
  41.     }
  42.     private function resolveEshop(Client $client)
  43.     {
  44.         if(!$client->hasFlag(ClientFlagManager::HAVE_ESHOP)) {
  45.             return;
  46.         }
  47.         $shellExec = new ShellExec('doctrine:schema:update''--clientID='.$client->getId().' --schemas=eshop --kernel=eshop --force');
  48.         $this->shellExecManager->runShellExec($shellExectrue);
  49.     }
  50. }