Pinq\Providers\DSL\QueryCompilerConfiguration::loadQueryTemplate PHP Метод

loadQueryTemplate() защищенный Метод

protected loadQueryTemplate ( Expression $queryExpression, Pinq\Expressions\IEvaluationContext $evaluationContext = null, Pinq\Queries\IResolvedParameterRegistry &$resolvedParameters = null, callable $resolveQueryCallback, callable $parseQueryCallback, callable $createTemplateCallback, Pinq\Caching\ICacheAdapter &$queryCache = null, &$templateHash )
$queryExpression Pinq\Expressions\Expression
$evaluationContext Pinq\Expressions\IEvaluationContext
$resolvedParameters Pinq\Queries\IResolvedParameterRegistry
$resolveQueryCallback callable
$parseQueryCallback callable
$createTemplateCallback callable
$queryCache Pinq\Caching\ICacheAdapter
    protected function loadQueryTemplate(O\Expression $queryExpression, O\IEvaluationContext $evaluationContext = null, Queries\IResolvedParameterRegistry &$resolvedParameters = null, callable $resolveQueryCallback, callable $parseQueryCallback, callable $createTemplateCallback, Caching\ICacheAdapter &$queryCache = null, &$templateHash)
    {
        /** @var $resolution Queries\IResolvedQuery */
        $resolution = $resolveQueryCallback($queryExpression, $evaluationContext);
        $templateHash = $resolution->getHash();
        $queryCache = $this->getCompiledQueryCache($resolution->getQueryable()->getSourceInfo());
        $queryTemplate = $queryCache->tryGet($templateHash);
        if (!$queryTemplate instanceof Compilation\IQueryTemplate) {
            /** @var $query Queries\IQuery */
            $query = $parseQueryCallback($queryExpression, $evaluationContext);
            /** @var $queryTemplate Compilation\IQueryTemplate */
            $queryTemplate = $createTemplateCallback($query);
            $queryCache->save($templateHash, $queryTemplate);
        }
        $resolvedParameters = $queryTemplate->getParameters()->resolve($resolution);
        return $queryTemplate;
    }