Exceptions
Exception
Symfony\Component\HttpClient\Exception\ ClientException
if (500 <= $code) {
throw new ServerException($this);
}
if (400 <= $code) {
throw new ClientException($this);
}
if (300 <= $code) {
throw new RedirectionException($this);
}
in
vendor/symfony/http-client/Response/TraceableResponse.php
->
checkStatusCode
(line 103)
} finally {
if ($this->event && $this->event->isStarted()) {
$this->event->stop();
}
if ($throw) {
$this->checkStatusCode($this->response->getStatusCode());
}
}
}
public function toArray(bool $throw = true): array
'hapikey' => $this->hubSpotKey,
'after' => $after,
],
]);
$result = json_decode($response->getContent(), true);
} catch (HttpExceptionInterface $e) {
$this->logger->error('Could not load blog posts from HubSpot', ['exception' => $e]);
throw $e;
}
if (!isset($this->posts)) {
$beta = $bustCache ? INF : null;
$this->posts = $this->cache->get('blog_posts', function (ItemInterface $item) {
$item->expiresAfter(86400); // cache for 1 day
return $this->loadBlogPosts();
}, $beta);
}
return $this->posts;
}
in
vendor/symfony/cache/Adapter/TraceableAdapter.php
->
App\{closure}
(line 51)
$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
->
Symfony\Component\Cache\Adapter\{closure}
(line 108)
if ($locked || !$wouldBlock) {
$logger && $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 100)
}
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;
} finally {
unset($this->computing[$key]);
in
vendor/symfony/cache-contracts/CacheTrait.php
->
Symfony\Component\Cache\Traits\{closure}
(line 72)
}
}
if ($recompute) {
$save = true;
$item->set($callback($item, $save));
if ($save) {
$pool->save($item);
}
}
in
vendor/symfony/cache/Traits/ContractsTrait.php
->
contractsGet
(line 107)
return $value;
} finally {
unset($this->computing[$key]);
}
}, $beta, $metadata, $this->logger ?? null);
}
}
in
vendor/symfony/cache-contracts/CacheTrait.php
->
doGet
(line 35)
*
* @return mixed
*/
public function get(string $key, callable $callback, float $beta = null, array &$metadata = null)
{
return $this->doGet($this, $key, $callback, $beta, $metadata);
}
/**
* {@inheritdoc}
*/
in
vendor/symfony/cache/Adapter/TraceableAdapter.php
->
get
(line 56)
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 getAllPosts(bool $bustCache = false): array
{
if (!isset($this->posts)) {
$beta = $bustCache ? INF : null;
$this->posts = $this->cache->get('blog_posts', function (ItemInterface $item) {
$item->expiresAfter(86400); // cache for 1 day
return $this->loadBlogPosts();
}, $beta);
}
}
public function getPosts(int $perPage = 3, int $page = 1, string $tag = '', string $author = ''): array
{
$offset = ($page - 1) * $perPage;
$posts = $this->getAllPosts();
if ($tag) {
$postsFiltered = [];
foreach ($posts as $post) {
foreach ($post['tags'] as $tag2) {
#[Route(path: '/', name: 'landing', methods: ['GET'], options: ['in_sitemap' => true, 'sitemap_priority' => 1, 'sitemap_changefreq' => 'daily'])]
public function index(Blog $blog): Response
{
return $this->render('landing.twig', [
'logos' => $this->getCustomerLogos(),
'latestBlogPosts' => $blog->getPosts(2),
'badges' => $this->getAwardsBadges(),
]);
}
private function getCustomerLogos(): array
in
vendor/symfony/http-kernel/HttpKernel.php
->
index
(line 152)
$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);
$this->dispatcher->dispatch($event, KernelEvents::VIEW);
in
vendor/symfony/http-kernel/HttpKernel.php
->
handleRaw
(line 74)
public function handle(Request $request, int $type = HttpKernelInterface::MAIN_REQUEST, bool $catch = true)
{
$request->headers->set('X-Php-Ob-Level', (string) ob_get_level());
try {
return $this->handleRaw($request, $type);
} catch (\Exception $e) {
if ($e instanceof RequestExceptionInterface) {
$e = new BadRequestHttpException($e->getMessage(), $e);
}
if (false === $catch) {
in
vendor/symfony/http-kernel/Kernel.php
->
handle
(line 202)
$this->boot();
++$this->requestStackSize;
$this->resetServices = true;
try {
return $this->getHttpKernel()->handle($request, $type, $catch);
} finally {
--$this->requestStackSize;
}
}
Request::setTrustedHosts([$trustedHosts]);
}
$kernel = new Kernel($_SERVER['APP_ENV'], (bool) $_SERVER['APP_DEBUG']);
$request = Request::createFromGlobals();
$response = $kernel->handle($request);
$response->send();
$kernel->terminate($request, $response);
Logs
Level | Channel | Message |
---|---|---|
INFO 06:52:56 | php |
User Deprecated: Since symfony/framework-bundle 5.3: The "session.storage.native" service is deprecated, use "session.storage.factory.native" instead. { "exception": {} } |
INFO 06:52:56 | php |
User Deprecated: Since symfony/framework-bundle 5.3: The "session.storage.metadata_bag" service is deprecated, create your own "session.storage.factory" instead. { "exception": {} } |
INFO 06:52:56 | request |
Matched route "_profiler". { "route": "_profiler", "route_parameters": { "_route": "_profiler", "_controller": "web_profiler.controller.profiler::panelAction", "token": "bacff6" }, "request_uri": "http://invoiced.project-release.info/_profiler/bacff6?panel=exception", "method": "GET" } |
INFO 06:52:56 | php |
User Deprecated: Since symfony/framework-bundle 5.3: The "session.storage.factory.service" service is deprecated, use "session.storage.factory.native", "session.storage.factory.php_bridge" or "session.storage.factory.mock_file" instead. { "exception": {} } |
Stack Trace
ClientException
|
---|
Symfony\Component\HttpClient\Exception\ClientException: HTTP/2 401 returned for "https://api.hubapi.com/cms/v3/blogs/posts?hapikey=41d1972b-a2ce-454d-9e57-cd6355e00240". at vendor/symfony/http-client/Response/TraceableResponse.php:212 at Symfony\Component\HttpClient\Response\TraceableResponse->checkStatusCode(401) (vendor/symfony/http-client/Response/TraceableResponse.php:103) at Symfony\Component\HttpClient\Response\TraceableResponse->getContent() (src/Blog.php:228) at App\Blog->loadBlogPosts() (src/Blog.php:211) at App\Blog->App\{closure}(object(CacheItem), true) (vendor/symfony/cache/Adapter/TraceableAdapter.php:51) at Symfony\Component\Cache\Adapter\TraceableAdapter->Symfony\Component\Cache\Adapter\{closure}(object(CacheItem), true) (vendor/symfony/cache/LockRegistry.php:108) at Symfony\Component\Cache\LockRegistry::compute(object(Closure), object(CacheItem), true, object(FilesystemAdapter), object(Closure), object(Logger)) (vendor/symfony/cache/Traits/ContractsTrait.php:100) at Symfony\Component\Cache\Adapter\AbstractAdapter->Symfony\Component\Cache\Traits\{closure}(object(CacheItem), true) (vendor/symfony/cache-contracts/CacheTrait.php:72) at Symfony\Component\Cache\Adapter\AbstractAdapter->contractsGet(object(FilesystemAdapter), 'blog_posts', object(Closure), 1.0, array(), object(Logger)) (vendor/symfony/cache/Traits/ContractsTrait.php:107) at Symfony\Component\Cache\Adapter\AbstractAdapter->doGet(object(FilesystemAdapter), 'blog_posts', object(Closure), 1.0, array()) (vendor/symfony/cache-contracts/CacheTrait.php:35) at Symfony\Component\Cache\Adapter\AbstractAdapter->get('blog_posts', object(Closure), null, array()) (vendor/symfony/cache/Adapter/TraceableAdapter.php:56) at Symfony\Component\Cache\Adapter\TraceableAdapter->get('blog_posts', object(Closure), null) (src/Blog.php:208) at App\Blog->getAllPosts() (src/Blog.php:67) at App\Blog->getPosts(2) (src/Controller/MarketingController.php:260) at App\Controller\MarketingController->index(object(Blog)) (vendor/symfony/http-kernel/HttpKernel.php:152) at Symfony\Component\HttpKernel\HttpKernel->handleRaw(object(Request), 1) (vendor/symfony/http-kernel/HttpKernel.php:74) at Symfony\Component\HttpKernel\HttpKernel->handle(object(Request), 1, true) (vendor/symfony/http-kernel/Kernel.php:202) at Symfony\Component\HttpKernel\Kernel->handle(object(Request)) (public/index.php:34) |