public function publicationBySlug($slug, $lang = null, $lifeTime = 60)
{
$lang = $lang ? $lang : LANG;
$publicationResult = $this->getDi()->get('cacheManager')->load([Keys::PUBLICATION, $slug, $lang], function () use($slug, $lang, $lifeTime) {
$columns = ['p.*', 't_slug' => 't.slug'];
$fields = $this->translateFieldsSubQuery($lang);
$columns = array_merge($columns, $fields);
$qb = $this->modelsManager->createBuilder()->columns($columns)->addFrom('Publication\\Model\\Publication', 'p')->innerJoin('Publication\\Model\\Type', 'p.type_id = t.id', 't')->where('p.slug = :slug:', ['slug' => $slug]);
$result = $qb->getQuery()->execute()->getFirst();
return $result;
}, $lifeTime);
return $publicationResult;
}