public function testGetClassByAliasCache() { $this->metadataFactory->expects($this->once())->method('getAllMetadata')->willReturn([new ClassMetadata('Test\\Entity1')]); $entityAliasProvider = $this->getMock('Oro\\Bundle\\EntityBundle\\Provider\\EntityAliasProviderInterface'); $entityAliasProvider->expects($this->once())->method('getEntityAlias')->with('Test\\Entity1')->willReturn(new EntityAlias('entity1_alias', 'entity1_plural_alias')); $this->entityAliasResolver->addProvider($entityAliasProvider); $this->assertEquals('Test\\Entity1', $this->entityAliasResolver->getClassByAlias('entity1_alias')); // test that the result is cached $this->assertEquals('Test\\Entity1', $this->entityAliasResolver->getClassByAlias('entity1_alias')); }
/** * Adjust query for tag-results-grid (tag search result grid) * after datasource has been built * * @param BuildAfter $event */ public function onBuildAfter(BuildAfter $event) { $datagrid = $event->getDatagrid(); $datasource = $datagrid->getDatasource(); if ($datasource instanceof OrmDatasource) { $parameters = $datagrid->getParameters(); $queryBuilder = $datasource->getQueryBuilder(); $this->securityProvider->applyAcl($queryBuilder, 'tt'); $queryBuilder->setParameter('tag', $parameters->get('tag_id', 0)); $from = $parameters->get('from', ''); if (strlen($from) > 0) { try { $entityClass = $this->entityAliasResolver->getClassByAlias($from); $queryBuilder->andWhere('tt.entityName = :entityClass')->setParameter('entityClass', $entityClass); } catch (EntityAliasNotFoundException $e) { $queryBuilder->andWhere('1 = 0'); } } } }
/** * Resolves the entity class name by entity alias * * @param string $entityAlias The alias or plural alias of the entity * @param bool $isPluralAlias Determines whether the entity name may be a singular of plural alias * * @return string The FQCN of an entity */ protected function getEntityClassByAlias($entityAlias, $isPluralAlias) { return $isPluralAlias ? $this->entityAliasResolver->getClassByPluralAlias($entityAlias) : $this->entityAliasResolver->getClassByAlias($entityAlias); }
/** * {@inheritdoc} */ protected function normalizeValue($value) { return $this->entityAliasResolver->getClassByAlias($value); }