Internal: Include session when running cli with legacy code (#5790)

pull/5792/head
Angel Fernando Quiroz Campos 1 year ago committed by GitHub
parent 153fdb1e32
commit eef3b98d4e
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
  1. 1
      config/services.yaml
  2. 10
      public/main/inc/global.inc.php
  3. 15
      src/CoreBundle/ServiceHelper/ContainerHelper.php

@ -110,6 +110,7 @@ services:
- setKernel: [ '@kernel' ]
- setMessengerBus: [ '@messenger.bus.default' ]
- setValidator: [ '@validator' ]
- setSessionFactory: [ '@session.factory' ]
cocur_slugify:
lowercase: true

@ -46,19 +46,21 @@ if ($isCli) {
}
$container = $kernel->getContainer();
Container::setContainer($container);
$session = Container::getLegacyHelper()->getSession();
$request = Request::create('/');
$request->setSession($session);
$container->get('request_stack')->push($request);
Container::setLegacyServices($container);
$router = $container->get('router');
$context = $router->getContext();
$router->setContext($context);
Database::setManager($container->get('doctrine.orm.entity_manager'));
$cliOptions = getopt('', ['url:']);
if (!empty($cliOptions['url'])) {
$baseUrl = $cliOptions['url'];
$context->setBaseUrl($baseUrl);
}
echo "CLI mode: EntityManager initialized.\n";
} else {
$kernel = new Chamilo\Kernel($env, $debug);
// Loading Request from Sonata. In order to use Sonata Pages Bundle.

@ -6,6 +6,8 @@ declare(strict_types=1);
namespace Chamilo\CoreBundle\ServiceHelper;
use Symfony\Component\HttpFoundation\Session\SessionFactoryInterface;
use Symfony\Component\HttpFoundation\Session\SessionInterface;
use Symfony\Component\HttpKernel\KernelInterface;
use Symfony\Component\Messenger\MessageBusInterface;
use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface;
@ -19,6 +21,7 @@ class ContainerHelper
private KernelInterface $kernel;
private MessageBusInterface $messengerBus;
private ValidatorInterface $validator;
private SessionFactoryInterface $sessionFactory;
public function getAuthorizationChecker(): AuthorizationCheckerInterface
{
@ -69,4 +72,16 @@ class ContainerHelper
{
$this->validator = $validator;
}
public function getSession(): SessionInterface
{
return $this->sessionFactory->createSession();
}
public function setSessionFactory(SessionFactoryInterface $sessionFactory): ContainerHelper
{
$this->sessionFactory = $sessionFactory;
return $this;
}
}

Loading…
Cancel
Save