/** * @param QueryOperation $operation * @param string $hydratorType * @param null|LdapObjectSchema $schema * @param null|string $alias * @return mixed */ protected function getResultsFromLdap(QueryOperation $operation, $hydratorType, $schema = null, $alias = null) { $hydrator = $this->hydratorFactory->get($hydratorType); $hydrator->setLdapConnection($this->ldap); $hydrator->setOperationType(AttributeConverterInterface::TYPE_SEARCH_FROM); $hydrator->setLdapObjectSchema($schema); $hydrator->setSelectedAttributes($this->getAttributesToLdap($operation->getAttributes(), false, $schema, $alias)); $opHydrator = new OperationHydrator($this->ldap); $opHydrator->setAlias($alias); $opHydrator->setOrderBy($this->orderBy); $opHydrator->setLdapObjectSchema($schema); $opHydrator->hydrateToLdap($operation); return $hydrator->hydrateAllFromLdap($this->ldap->execute($operation)); }