Автор: Elliot Levin (elliotlevin@hotmail.com)
Пример #1
0
 protected function loadCompiledQueryFromTemplate(Caching\ICacheAdapter $queryCache, $templateHash, IQueryTemplate $template, Queries\IResolvedParameterRegistry $parameters, callable $compileRequestCallback)
 {
     if ($template instanceof IStaticQueryTemplate) {
         return $template->getCompiledQuery();
     }
     $resolvedStructuralParameters = $template->resolveStructuralParameters($parameters, $hash);
     $compiledQueryHash = md5($templateHash . '-' . $hash);
     $compiledQuery = $queryCache->tryGet($compiledQueryHash);
     if (!$compiledQuery instanceof ICompiledQuery) {
         $compiledQuery = $compileRequestCallback($template, $resolvedStructuralParameters);
         $queryCache->save($compiledQueryHash, $compiledQuery);
     }
     return $compiledQuery;
 }