diff --git a/core/Cache/SymfonyCacheManager.php b/core/Cache/SymfonyCacheManager.php index 4fb7fe2..f204392 100644 --- a/core/Cache/SymfonyCacheManager.php +++ b/core/Cache/SymfonyCacheManager.php @@ -7,6 +7,8 @@ use Symfony\Component\Console\Input\ArrayInput; use Symfony\Component\Console\Output\BufferedOutput; use Symfony\Component\Finder\Finder; use Symfony\Component\HttpKernel\KernelInterface; +use Symfony\Contracts\HttpClient\HttpClientInterface; +use Symfony\Component\Routing\Generator\UrlGeneratorInterface; /** * class SymfonyCacheManager. @@ -16,10 +18,14 @@ use Symfony\Component\HttpKernel\KernelInterface; class SymfonyCacheManager { protected KernelInterface $kernel; + protected HttpClientInterface $httpClient; + protected UrlGeneratorInterface $urlGenerator; - public function __construct(KernelInterface $kernel) + public function __construct(KernelInterface $kernel, HttpClientInterface $httpClient, UrlGeneratorInterface $urlGenerator) { $this->kernel = $kernel; + $this->httpClient = $httpClient; + $this->urlGenerator = $urlGenerator; } public function cleanRouting() @@ -31,9 +37,14 @@ class SymfonyCacheManager ->name('url_*.php*') ; + $pingUrl = $this->urlGenerator->generate('_ping', [], UrlGeneratorInterface::ABSOLUTE_URL); + foreach ($finder as $file) { unlink((string) $file->getPathname()); } + + // Hack: used to regenerate cache of url generator + $this->httpClient->request('POST', $pingUrl); } public function cleanAll() diff --git a/core/Controller/Admin/AdminController.php b/core/Controller/Admin/AdminController.php index 799ae7a..67864e9 100644 --- a/core/Controller/Admin/AdminController.php +++ b/core/Controller/Admin/AdminController.php @@ -5,6 +5,7 @@ namespace App\Core\Controller\Admin; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface; use Symfony\Component\HttpFoundation\Response; +use Symfony\Component\Routing\Annotation\Route; abstract class AdminController extends AbstractController { @@ -28,4 +29,12 @@ abstract class AdminController extends AbstractController } abstract protected function getSection(): string; + + /** + * @Route("/_ping", name="_ping") + */ + public function ping() + { + return $this->json(true); + } } diff --git a/core/Controller/Site/NodeAdminController.php b/core/Controller/Site/NodeAdminController.php index f9da5e5..940c2ea 100644 --- a/core/Controller/Site/NodeAdminController.php +++ b/core/Controller/Site/NodeAdminController.php @@ -72,7 +72,7 @@ class NodeAdminController extends AdminController $pageLocator ); - $entityManager->update($entity); + $entityManager->create($entity); $this->addFlash('success', 'The data has been saved.'); diff --git a/core/EventSuscriber/Site/NodeEventSubscriber.php b/core/EventSuscriber/Site/NodeEventSubscriber.php index a682e68..2e107b3 100644 --- a/core/EventSuscriber/Site/NodeEventSubscriber.php +++ b/core/EventSuscriber/Site/NodeEventSubscriber.php @@ -50,6 +50,11 @@ class NodeEventSubscriber extends EntityManagerEventSubscriber return $entity instanceof Node; } + public function onPreCreate(EntityManagerEvent $event) + { + return $this->onPreUpdate($event); + } + public function onPreUpdate(EntityManagerEvent $event) { if (!$this->support($event->getEntity())) { diff --git a/core/Router/SiteRouteLoader.php b/core/Router/SiteRouteLoader.php index 88c7857..8397d87 100644 --- a/core/Router/SiteRouteLoader.php +++ b/core/Router/SiteRouteLoader.php @@ -115,7 +115,6 @@ class SiteRouteLoader extends Loader } $route = new Route($url, $defaults, $requirements, [], $host); - //$route->setHost($navigation->getDomain()); $routes->add($node->getRouteName(), $route); }