Exceptions
Exception
TypeError
in
src/Repository/CategoryRepository.php
(line 72)
}
// On lie les paramètres de pagination
$stmt->execute();
return $stmt->fetch();
}
public function findByKeyword(string $keyword): array
{
$sql = "SELECT cat AS label, 'cat' AS type FROM categorie WHERE cat LIKE :kw AND cat != ''
if (!empty($filters['tags'])) {
$categoryRepository = new CategoryRepository($this->factory, $this->modelPrepare);
$tags = is_array($filters['tags']) ? $filters['tags'] : [$filters['tags']];
$tagData = $categoryRepository->findCategoryByStr($tags[0], 'cat');
if ($tagData && !empty($tagData['cat'])) {
$whereClauses[] = '(e.titre LIKE :tag OR e.description LIKE :tag OR c.cat_str LIKE :tag_str)';
$params['tag'] = '%' . $tagData['cat'] . '%';
$params['tag_str'] = '%' . $tags[0] . '%'; // Utilise le nom non-slugifié
return $this->cache->get($cacheKey, function (ItemInterface $item) use ($filters, $page, $itemsPerPage) {
$item->expiresAfter(600);
// 1. On récupère les parties de la requête depuis la méthode privée
$queryParts = $this->buildSearchQueryParts($filters);
// 2. On construit la requête finale
$sql = "SELECT e.* FROM evenement e
{$queryParts['join']}
{$queryParts['where']}
in
vendor/symfony/cache/Adapter/TraceableAdapter.php
->
{closure:App\Repository\EventRepository::search():126}
(line 57)
$isHit = true;
$callback = function (CacheItem $item, bool &$save) use ($callback, &$isHit) {
$isHit = $item->isHit();
return $callback($item, $save);
};
$event = $this->start(__FUNCTION__);
try {
$value = $this->pool->get($key, $callback, $beta, $metadata);
in
vendor/symfony/cache/LockRegistry.php
->
{closure:Symfony\Component\Cache\Adapter\TraceableAdapter::get():54}
(line 111)
if ($locked || !$wouldBlock) {
$logger?->info(\sprintf('Lock %s, now computing item "{key}"', $locked ? 'acquired' : 'not supported'), ['key' => $item->getKey()]);
self::$lockedFiles[$key] = true;
$value = $callback($item, $save);
if ($save) {
if ($setMetadata) {
$setMetadata($item);
}
in
vendor/symfony/cache/Traits/ContractsTrait.php
::
compute
(line 102)
if (!isset($this->callbackWrapper)) {
$this->setCallbackWrapper($this->setCallbackWrapper(null));
}
try {
$value = ($this->callbackWrapper)($callback, $item, $save, $pool, function (CacheItem $item) use ($setMetadata, $startTime, &$metadata) {
$setMetadata($item, $startTime, $metadata);
}, $this->logger ?? null);
$setMetadata($item, $startTime, $metadata);
return $value;
in
vendor/symfony/cache-contracts/CacheTrait.php
->
{closure:Symfony\Component\Cache\Traits\ContractsTrait::doGet():85}
(line 64)
}
}
if ($recompute) {
$save = true;
$item->set($callback($item, $save));
if ($save) {
$pool->save($item);
}
}
in
vendor/symfony/cache/Traits/ContractsTrait.php
->
contractsGet
(line 85)
CacheItem::class
);
$this->callbackWrapper ??= LockRegistry::compute(...);
return $this->contractsGet($pool, $key, function (CacheItem $item, bool &$save) use ($pool, $callback, $setMetadata, &$metadata, $key) {
// don't wrap nor save recursive calls
if (isset($this->computing[$key])) {
$value = $callback($item, $save);
$save = false;
in
vendor/symfony/cache-contracts/CacheTrait.php
->
doGet
(line 30)
*/
trait CacheTrait
{
public function get(string $key, callable $callback, ?float $beta = null, ?array &$metadata = null): mixed
{
return $this->doGet($this, $key, $callback, $beta, $metadata);
}
public function delete(string $key): bool
{
return $this->deleteItem($key);
in
vendor/symfony/cache/Adapter/TraceableAdapter.php
->
get
(line 62)
return $callback($item, $save);
};
$event = $this->start(__FUNCTION__);
try {
$value = $this->pool->get($key, $callback, $beta, $metadata);
$event->result[$key] = get_debug_type($value);
} finally {
$event->end = microtime(true);
}
if ($isHit) {
public function search(array $filters, int $page = 1, int $itemsPerPage = 20): array
{
$cacheKey = 'events_' . md5(json_encode($filters) . "_p{$page}_ipp{$itemsPerPage}");
return $this->cache->get($cacheKey, function (ItemInterface $item) use ($filters, $page, $itemsPerPage) {
$item->expiresAfter(600);
// 1. On récupère les parties de la requête depuis la méthode privée
$queryParts = $this->buildSearchQueryParts($filters);
} else {
$filters = ['tags' => [$tags], 'dep' => $cp, 'dep_str' => $city];
}
$page = $request->query->getInt('page', 1);
$results = $eventRepository->search($filters, $page, 20);
$total = $eventRepository->countSearchResults($filters);
$totalPages = ceil($total / 20);
$villes = $cityRepository->findCityByDep($filters);
$ville = join(', ', $villes);
$category = $categoryRepository->findCategoryByStr($tags, 'cat');
in
vendor/symfony/http-kernel/HttpKernel.php
->
eventTagCity
(line 183)
$this->dispatcher->dispatch($event, KernelEvents::CONTROLLER_ARGUMENTS);
$controller = $event->getController();
$arguments = $event->getArguments();
// call controller
$response = $controller(...$arguments);
// view
if (!$response instanceof Response) {
$event = new ViewEvent($this, $request, $type, $response, $event);
$this->dispatcher->dispatch($event, KernelEvents::VIEW);
in
vendor/symfony/http-kernel/HttpKernel.php
->
handleRaw
(line 76)
$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;
}
in
vendor/symfony/http-kernel/Kernel.php
->
handle
(line 182)
$this->boot();
++$this->requestStackSize;
$this->resetServices = true;
try {
return $this->getHttpKernel()->handle($request, $type, $catch);
} finally {
--$this->requestStackSize;
}
}
in
vendor/symfony/runtime/Runner/Symfony/HttpKernelRunner.php
->
handle
(line 35)
) {
}
public function run(): int
{
$response = $this->kernel->handle($this->request);
if (Kernel::VERSION_ID >= 60400) {
$response->send(false);
if (\function_exists('fastcgi_finish_request') && !$this->debug) {
in
vendor/autoload_runtime.php
->
run
(line 29)
$app = $app(...$args);
exit(
$runtime
->getRunner($app)
->run()
);
require_once('/var/www/vhosts/sortir-en-bretagne.fr/preprod.sortir-en-bretagne.fr/vendor/autoload_runtime.php')
in
public/index.php
(line 5)
<?php
use App\Kernel;
require_once dirname(__DIR__).'/vendor/autoload_runtime.php';
return function (array $context) {
return new Kernel($context['APP_ENV'], (bool) $context['APP_DEBUG']);
};
Logs
Level | Channel | Message |
---|---|---|
INFO 22:18:31 | deprecation |
User Deprecated: Class "Doctrine\ORM\Proxy\Autoloader" is deprecated. Use native lazy objects instead. (Autoloader.php:74 called by DoctrineBundle.php:130, https://github.com/doctrine/orm/pull/12005, package doctrine/orm) { "exception": {} } |
DEBUG 22:18:31 | php |
User Notice: Install the curl extension or run "composer require amphp/http-client:^5" to perform async HTTP operations, including full HTTP/2 support { "exception": { "severity": 1024, "file": "/var/www/vhosts/sortir-en-bretagne.fr/preprod.sortir-en-bretagne.fr/vendor/symfony/http-client/HttpClient.php", "line": 65, "trace": [ { "file": "/var/www/vhosts/sortir-en-bretagne.fr/preprod.sortir-en-bretagne.fr/var/cache/dev/Container10RepV4/App_KernelDevDebugContainer.php", "line": 1531, "function": "create", "class": "Symfony\\Component\\HttpClient\\HttpClient", "type": "::" } ], "count": 1 } } |
INFO 22:18:31 | request |
Matched route "_profiler". { "route": "_profiler", "route_parameters": { "_route": "_profiler", "_controller": "web_profiler.controller.profiler::panelAction", "token": "a1b8c8" }, "request_uri": "https://preprod.sortir-en-bretagne.fr/_profiler/a1b8c8", "method": "GET" } |
DEBUG 22:18:31 | event |
Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\DebugHandlersListener::configure". { "event": "kernel.request", "listener": "Symfony\\Component\\HttpKernel\\EventListener\\DebugHandlersListener::configure" } |
DEBUG 22:18:31 | event |
Notified event "kernel.request" to listener "Symfony\UX\Turbo\Request\RequestListener::__invoke". { "event": "kernel.request", "listener": "Symfony\\UX\\Turbo\\Request\\RequestListener::__invoke" } |
DEBUG 22:18:31 | event |
Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\ValidateRequestListener::onKernelRequest". { "event": "kernel.request", "listener": "Symfony\\Component\\HttpKernel\\EventListener\\ValidateRequestListener::onKernelRequest" } |
DEBUG 22:18:31 | event |
Notified event "kernel.request" to listener "Symfony\Bridge\Doctrine\Middleware\IdleConnection\Listener::onKernelRequest". { "event": "kernel.request", "listener": "Symfony\\Bridge\\Doctrine\\Middleware\\IdleConnection\\Listener::onKernelRequest" } |
DEBUG 22:18:31 | event |
Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\SessionListener::onKernelRequest". { "event": "kernel.request", "listener": "Symfony\\Component\\HttpKernel\\EventListener\\SessionListener::onKernelRequest" } |
DEBUG 22:18:31 | event |
Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\LocaleListener::setDefaultLocale". { "event": "kernel.request", "listener": "Symfony\\Component\\HttpKernel\\EventListener\\LocaleListener::setDefaultLocale" } |
DEBUG 22:18:31 | event |
Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\FragmentListener::onKernelRequest". { "event": "kernel.request", "listener": "Symfony\\Component\\HttpKernel\\EventListener\\FragmentListener::onKernelRequest" } |
DEBUG 22:18:31 | event |
Notified event "kernel.request" to listener "Symfony\Component\AssetMapper\AssetMapperDevServerSubscriber::onKernelRequest". { "event": "kernel.request", "listener": "Symfony\\Component\\AssetMapper\\AssetMapperDevServerSubscriber::onKernelRequest" } |
DEBUG 22:18:31 | event |
Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\RouterListener::onKernelRequest". { "event": "kernel.request", "listener": "Symfony\\Component\\HttpKernel\\EventListener\\RouterListener::onKernelRequest" } |
DEBUG 22:18:31 | event |
Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\LocaleListener::onKernelRequest". { "event": "kernel.request", "listener": "Symfony\\Component\\HttpKernel\\EventListener\\LocaleListener::onKernelRequest" } |
DEBUG 22:18:31 | event |
Notified event "kernel.request" to listener "Symfony\Component\HttpKernel\EventListener\LocaleAwareListener::onKernelRequest". { "event": "kernel.request", "listener": "Symfony\\Component\\HttpKernel\\EventListener\\LocaleAwareListener::onKernelRequest" } |
DEBUG 22:18:31 | event |
Notified event "kernel.request" to listener "Symfony\Bundle\SecurityBundle\Debug\TraceableFirewallListener::configureLogoutUrlGenerator". { "event": "kernel.request", "listener": "Symfony\\Bundle\\SecurityBundle\\Debug\\TraceableFirewallListener::configureLogoutUrlGenerator" } |
DEBUG 22:18:31 | event |
Notified event "kernel.request" to listener "Symfony\Bundle\SecurityBundle\Debug\TraceableFirewallListener::onKernelRequest". { "event": "kernel.request", "listener": "Symfony\\Bundle\\SecurityBundle\\Debug\\TraceableFirewallListener::onKernelRequest" } |
DEBUG 22:18:31 | event |
Notified event "kernel.controller" to listener "Symfony\Bundle\FrameworkBundle\DataCollector\RouterDataCollector::onKernelController". { "event": "kernel.controller", "listener": "Symfony\\Bundle\\FrameworkBundle\\DataCollector\\RouterDataCollector::onKernelController" } |
DEBUG 22:18:31 | event |
Notified event "kernel.controller" to listener "Symfony\Component\HttpKernel\DataCollector\RequestDataCollector::onKernelController". { "event": "kernel.controller", "listener": "Symfony\\Component\\HttpKernel\\DataCollector\\RequestDataCollector::onKernelController" } |
DEBUG 22:18:31 | event |
Notified event "kernel.controller_arguments" to listener "Symfony\Component\Security\Http\EventListener\IsCsrfTokenValidAttributeListener::onKernelControllerArguments". { "event": "kernel.controller_arguments", "listener": "Symfony\\Component\\Security\\Http\\EventListener\\IsCsrfTokenValidAttributeListener::onKernelControllerArguments" } |
DEBUG 22:18:31 | event |
Notified event "kernel.controller_arguments" to listener "Symfony\Component\Security\Http\EventListener\IsGrantedAttributeListener::onKernelControllerArguments". { "event": "kernel.controller_arguments", "listener": "Symfony\\Component\\Security\\Http\\EventListener\\IsGrantedAttributeListener::onKernelControllerArguments" } |
DEBUG 22:18:31 | event |
Notified event "kernel.controller_arguments" to listener "Symfony\Component\HttpKernel\EventListener\CacheAttributeListener::onKernelControllerArguments". { "event": "kernel.controller_arguments", "listener": "Symfony\\Component\\HttpKernel\\EventListener\\CacheAttributeListener::onKernelControllerArguments" } |
DEBUG 22:18:31 | event |
Notified event "kernel.controller_arguments" to listener "Symfony\Component\HttpKernel\Controller\ArgumentResolver\RequestPayloadValueResolver::onKernelControllerArguments". { "event": "kernel.controller_arguments", "listener": "Symfony\\Component\\HttpKernel\\Controller\\ArgumentResolver\\RequestPayloadValueResolver::onKernelControllerArguments" } |
DEBUG 22:18:31 | event |
Notified event "kernel.controller_arguments" to listener "Symfony\Component\HttpKernel\EventListener\ErrorListener::onControllerArguments". { "event": "kernel.controller_arguments", "listener": "Symfony\\Component\\HttpKernel\\EventListener\\ErrorListener::onControllerArguments" } |
Stack Trace
TypeError
|
---|
TypeError: App\Repository\CategoryRepository::findCategoryByStr(): Return value must be of type array, false returned at src/Repository/CategoryRepository.php:72 at App\Repository\CategoryRepository->findCategoryByStr() (src/Repository/EventRepository.php:50) at App\Repository\EventRepository->buildSearchQueryParts() (src/Repository/EventRepository.php:130) at App\Repository\EventRepository->{closure:App\Repository\EventRepository::search():126}() (vendor/symfony/cache/Adapter/TraceableAdapter.php:57) at Symfony\Component\Cache\Adapter\TraceableAdapter->{closure:Symfony\Component\Cache\Adapter\TraceableAdapter::get():54}() (vendor/symfony/cache/LockRegistry.php:111) at Symfony\Component\Cache\LockRegistry::compute() (vendor/symfony/cache/Traits/ContractsTrait.php:102) at Symfony\Component\Cache\Adapter\AbstractAdapter->{closure:Symfony\Component\Cache\Traits\ContractsTrait::doGet():85}() (vendor/symfony/cache-contracts/CacheTrait.php:64) at Symfony\Component\Cache\Adapter\AbstractAdapter->contractsGet() (vendor/symfony/cache/Traits/ContractsTrait.php:85) at Symfony\Component\Cache\Adapter\AbstractAdapter->doGet() (vendor/symfony/cache-contracts/CacheTrait.php:30) at Symfony\Component\Cache\Adapter\AbstractAdapter->get() (vendor/symfony/cache/Adapter/TraceableAdapter.php:62) at Symfony\Component\Cache\Adapter\TraceableAdapter->get() (src/Repository/EventRepository.php:126) at App\Repository\EventRepository->search() (src/Controller/SearchController.php:348) at App\Controller\SearchController->eventTagCity() (vendor/symfony/http-kernel/HttpKernel.php:183) at Symfony\Component\HttpKernel\HttpKernel->handleRaw() (vendor/symfony/http-kernel/HttpKernel.php:76) at Symfony\Component\HttpKernel\HttpKernel->handle() (vendor/symfony/http-kernel/Kernel.php:182) at Symfony\Component\HttpKernel\Kernel->handle() (vendor/symfony/runtime/Runner/Symfony/HttpKernelRunner.php:35) at Symfony\Component\Runtime\Runner\Symfony\HttpKernelRunner->run() (vendor/autoload_runtime.php:29) at require_once('/var/www/vhosts/sortir-en-bretagne.fr/preprod.sortir-en-bretagne.fr/vendor/autoload_runtime.php') (public/index.php:5) |