return $this->currencies->contains($currency);
}
public function getLocales(): Collection
{
return $this->locales;
}
public function addLocale(LocaleInterface $locale): void
{
if (!$this->hasLocale($locale)) {
try {
/** @var ChannelInterface $channel */
$channel = $this->channelContext->getChannel();
return $channel
->getLocales()
->map(function (LocaleInterface $locale) {
return (string) $locale->getCode();
})
->toArray()
;
{
if (null === $request = $this->requestStack->getMainRequest()) {
throw new LocaleNotFoundException('Main request not found, therefore no locale found…');
}
$pathInfo = $request->getPathInfo();
$availableLocaleCodes = $this->localeProvider->getAvailableLocalesCodes();
$parts = explode('/', trim($pathInfo, '/'));
foreach ($parts as $part) {
if (\in_array($part, $availableLocaleCodes, true)) {
return $part;
}
{
$lastException = null;
foreach ($this->localeContexts as $localeContext) {
try {
return $localeContext->getLocaleCode();
} catch (LocaleNotFoundException $exception) {
$lastException = $exception;
continue;
}
*/
public function onKernelRequest(RequestEvent $event): void
{
$request = $event->getRequest();
$request->setLocale($this->localeContext->getLocaleCode());
$request->setDefaultLocale($this->localeProvider->getDefaultLocaleCode());
}
}
$this->priority ??= $dispatcher->getListenerPriority($eventName, $this->listener);
$e = $this->stopwatch->start($this->name, 'event_listener');
try {
($this->optimizedListener ?? $this->listener)($event, $eventName, $dispatcher);
} finally {
if ($e->isStarted()) {
$e->stop();
}
}
foreach ($listeners as $listener) {
if ($stoppable && $event->isPropagationStopped()) {
break;
}
$listener($event, $eventName, $this);
}
}
/**
* Sorts the internal list of listeners for the given event by priority.
} else {
$listeners = $this->getListeners($eventName);
}
if ($listeners) {
$this->callListeners($listeners, $eventName, $event);
}
return $event;
}
try {
$this->beforeDispatch($eventName, $event);
try {
$e = $this->stopwatch->start($eventName, 'section');
try {
$this->dispatcher->dispatch($event, $eventName);
} finally {
if ($e->isStarted()) {
$e->stop();
}
}
*/
private function handleRaw(Request $request, int $type = self::MAIN_REQUEST): Response
{
// request
$event = new RequestEvent($this, $request, $type);
$this->dispatcher->dispatch($event, KernelEvents::REQUEST);
if ($event->hasResponse()) {
return $this->filterResponse($event->getResponse(), $request, $type);
}
$request->headers->set('X-Php-Ob-Level', (string) ob_get_level());
$this->requestStack->push($request);
$response = null;
try {
return $response = $this->handleRaw($request, $type);
} catch (\Throwable $e) {
if ($e instanceof \Error && !$this->handleAllThrowables) {
throw $e;
}
}
$request = $this->duplicateRequest($throwable, $event->getRequest());
try {
$response = $event->getKernel()->handle($request, HttpKernelInterface::SUB_REQUEST, false);
} catch (\Exception $e) {
$f = FlattenException::createFromThrowable($e);
$this->logException($e, sprintf('Exception thrown when handling an exception (%s: %s at %s line %s)', $f->getClass(), $f->getMessage(), basename($e->getFile()), $e->getLine()));
public function onKernelException(ExceptionEvent $event, string $eventName = null, EventDispatcherInterface $eventDispatcher = null): void
{
try {
/** @phpstan-ignore-next-line */
$this->decoratedListener->onKernelException($event, $eventName, $eventDispatcher);
} catch (\Throwable $throwable) {
$this->breakCircularDependency($throwable);
throw $throwable;
}
$this->priority ??= $dispatcher->getListenerPriority($eventName, $this->listener);
$e = $this->stopwatch->start($this->name, 'event_listener');
try {
($this->optimizedListener ?? $this->listener)($event, $eventName, $dispatcher);
} finally {
if ($e->isStarted()) {
$e->stop();
}
}
foreach ($listeners as $listener) {
if ($stoppable && $event->isPropagationStopped()) {
break;
}
$listener($event, $eventName, $this);
}
}
/**
* Sorts the internal list of listeners for the given event by priority.
} else {
$listeners = $this->getListeners($eventName);
}
if ($listeners) {
$this->callListeners($listeners, $eventName, $event);
}
return $event;
}
try {
$this->beforeDispatch($eventName, $event);
try {
$e = $this->stopwatch->start($eventName, 'section');
try {
$this->dispatcher->dispatch($event, $eventName);
} finally {
if ($e->isStarted()) {
$e->stop();
}
}
* Handles a throwable by trying to convert it to a Response.
*/
private function handleThrowable(\Throwable $e, Request $request, int $type): Response
{
$event = new ExceptionEvent($this, $request, $type, $e);
$this->dispatcher->dispatch($event, KernelEvents::EXCEPTION);
// a listener might have replaced the exception
$e = $event->getThrowable();
if (!$event->hasResponse()) {
if ($pop = $request !== $this->requestStack->getMainRequest()) {
$this->requestStack->push($request);
}
try {
$response = $this->handleThrowable($exception, $request, self::MAIN_REQUEST);
} finally {
if ($pop) {
$this->requestStack->pop();
}
}
if ($hasRun) {
throw $e;
}
$hasRun = true;
$kernel->terminateWithException($e, $request);
};
}
} elseif ($event instanceof ConsoleEvent && $app = $event->getCommand()->getApplication()) {
$output = $event->getOutput();
if ($output instanceof ConsoleOutputInterface) {
$this->exceptionHandler = null;
}
try {
if (null !== $exceptionHandler) {
$exceptionHandler($exception);
return;
}
$handlerException ??= $exception;
} catch (\Throwable $handlerException) {
TypeError
|
---|
TypeError: Sylius\Component\Core\Model\Channel::getLocales(): Return value must be of type Doctrine\Common\Collections\Collection, null returned at /home/latelierdsy/shop/vendor/sylius/sylius/src/Sylius/Component/Core/Model/Channel.php:151 at Sylius\Component\Core\Model\Channel->getLocales() (/home/latelierdsy/shop/vendor/sylius/sylius/src/Sylius/Component/Core/Provider/ChannelBasedLocaleProvider.php:35) at Sylius\Component\Core\Provider\ChannelBasedLocaleProvider->getAvailableLocalesCodes() (/home/latelierdsy/shop/vendor/monsieurbiz/sylius-cms-page-plugin/src/Context/LastChanceLocaleContext.php:41) at MonsieurBiz\SyliusCmsPagePlugin\Context\LastChanceLocaleContext->getLocaleCode() (/home/latelierdsy/shop/vendor/sylius/sylius/src/Sylius/Component/Locale/Context/CompositeLocaleContext.php:39) at Sylius\Component\Locale\Context\CompositeLocaleContext->getLocaleCode() (/home/latelierdsy/shop/vendor/sylius/sylius/src/Sylius/Bundle/LocaleBundle/Listener/RequestLocaleSetter.php:34) at Sylius\Bundle\LocaleBundle\Listener\RequestLocaleSetter->onKernelRequest(object(RequestEvent), 'kernel.request', object(TraceableEventDispatcher)) (/home/latelierdsy/shop/vendor/symfony/event-dispatcher/Debug/WrappedListener.php:116) at Symfony\Component\EventDispatcher\Debug\WrappedListener->__invoke(object(RequestEvent), 'kernel.request', object(TraceableEventDispatcher)) (/home/latelierdsy/shop/vendor/symfony/event-dispatcher/EventDispatcher.php:220) at Symfony\Component\EventDispatcher\EventDispatcher->callListeners(array(object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener)), 'kernel.request', object(RequestEvent)) (/home/latelierdsy/shop/vendor/symfony/event-dispatcher/EventDispatcher.php:56) at Symfony\Component\EventDispatcher\EventDispatcher->dispatch(object(RequestEvent), 'kernel.request') (/home/latelierdsy/shop/vendor/symfony/event-dispatcher/Debug/TraceableEventDispatcher.php:139) at Symfony\Component\EventDispatcher\Debug\TraceableEventDispatcher->dispatch(object(RequestEvent), 'kernel.request') (/home/latelierdsy/shop/vendor/symfony/http-kernel/HttpKernel.php:157) at Symfony\Component\HttpKernel\HttpKernel->handleRaw(object(Request), 2) (/home/latelierdsy/shop/vendor/symfony/http-kernel/HttpKernel.php:76) at Symfony\Component\HttpKernel\HttpKernel->handle(object(Request), 2, false) (/home/latelierdsy/shop/vendor/symfony/http-kernel/EventListener/ErrorListener.php:117) at Symfony\Component\HttpKernel\EventListener\ErrorListener->onKernelException(object(ExceptionEvent), 'kernel.exception', object(TraceableEventDispatcher)) (/home/latelierdsy/shop/vendor/sylius/sylius/src/Sylius/Bundle/CoreBundle/EventListener/CircularDependencyBreakingErrorListener.php:63) at Sylius\Bundle\CoreBundle\EventListener\CircularDependencyBreakingErrorListener->onKernelException(object(ExceptionEvent), 'kernel.exception', object(TraceableEventDispatcher)) (/home/latelierdsy/shop/vendor/symfony/event-dispatcher/Debug/WrappedListener.php:116) at Symfony\Component\EventDispatcher\Debug\WrappedListener->__invoke(object(ExceptionEvent), 'kernel.exception', object(TraceableEventDispatcher)) (/home/latelierdsy/shop/vendor/symfony/event-dispatcher/EventDispatcher.php:220) at Symfony\Component\EventDispatcher\EventDispatcher->callListeners(array(object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener)), 'kernel.exception', object(ExceptionEvent)) (/home/latelierdsy/shop/vendor/symfony/event-dispatcher/EventDispatcher.php:56) at Symfony\Component\EventDispatcher\EventDispatcher->dispatch(object(ExceptionEvent), 'kernel.exception') (/home/latelierdsy/shop/vendor/symfony/event-dispatcher/Debug/TraceableEventDispatcher.php:139) at Symfony\Component\EventDispatcher\Debug\TraceableEventDispatcher->dispatch(object(ExceptionEvent), 'kernel.exception') (/home/latelierdsy/shop/vendor/symfony/http-kernel/HttpKernel.php:239) at Symfony\Component\HttpKernel\HttpKernel->handleThrowable(object(ErrorException), object(Request), 1) (/home/latelierdsy/shop/vendor/symfony/http-kernel/HttpKernel.php:132) at Symfony\Component\HttpKernel\HttpKernel->terminateWithException(object(ErrorException), object(Request)) (/home/latelierdsy/shop/vendor/symfony/http-kernel/EventListener/DebugHandlersListener.php:82) at Symfony\Component\HttpKernel\EventListener\DebugHandlersListener::Symfony\Component\HttpKernel\EventListener\{closure}(object(ErrorException)) (/home/latelierdsy/shop/vendor/symfony/error-handler/ErrorHandler.php:531) at Symfony\Component\ErrorHandler\ErrorHandler->handleException(object(ErrorException)) |