public function __construct($queryBuilder, $manager = null, $class = null)
{
// If a query builder was passed, it must be a closure or QueryBuilder
// instance
if (!($queryBuilder instanceof QueryBuilder || $queryBuilder instanceof \Closure)) {
throw new UnexpectedTypeException($queryBuilder, 'Doctrine\\ORM\\QueryBuilder or \\Closure');
}
if ($queryBuilder instanceof \Closure) {
@trigger_error('Passing a QueryBuilder closure to ' . __CLASS__ . '::__construct() is deprecated since version 2.7 and will be removed in 3.0.', E_USER_DEPRECATED);
if (!$manager instanceof ObjectManager) {
throw new UnexpectedTypeException($manager, 'Doctrine\\Common\\Persistence\\ObjectManager');
}
@trigger_error('Passing an EntityManager to ' . __CLASS__ . '::__construct() is deprecated since version 2.7 and will be removed in 3.0.', E_USER_DEPRECATED);
@trigger_error('Passing a class to ' . __CLASS__ . '::__construct() is deprecated since version 2.7 and will be removed in 3.0.', E_USER_DEPRECATED);
$queryBuilder = $queryBuilder($manager->getRepository($class));
if (!$queryBuilder instanceof QueryBuilder) {
throw new UnexpectedTypeException($queryBuilder, 'Doctrine\\ORM\\QueryBuilder');
}
}
$this->queryBuilder = $queryBuilder;
}