Skip to content

Commit

Permalink
Merge remote-tracking branch 'upstream/3.x' into manual_merge
Browse files Browse the repository at this point in the history
  • Loading branch information
kunicmarko20 committed Sep 2, 2018
2 parents 13d477a + 777a838 commit 93ea1a4
Show file tree
Hide file tree
Showing 41 changed files with 238 additions and 114 deletions.
6 changes: 3 additions & 3 deletions src/Admin/FieldDescription.php
Expand Up @@ -24,7 +24,7 @@ public function __construct()

public function setAssociationMapping($associationMapping): void
{
if (!is_array($associationMapping)) {
if (!\is_array($associationMapping)) {
throw new \RuntimeException('The association mapping must be an array');
}

Expand All @@ -44,7 +44,7 @@ public function getTargetEntity()

public function setFieldMapping($fieldMapping): void
{
if (!is_array($fieldMapping)) {
if (!\is_array($fieldMapping)) {
throw new \RuntimeException('The field mapping must be an array');
}

Expand All @@ -58,7 +58,7 @@ public function setFieldMapping($fieldMapping): void
public function setParentAssociationMappings(array $parentAssociationMappings): void
{
foreach ($parentAssociationMappings as $parentAssociationMapping) {
if (!is_array($parentAssociationMapping)) {
if (!\is_array($parentAssociationMapping)) {
throw new \RuntimeException('An association mapping must be an array');
}
}
Expand Down
4 changes: 2 additions & 2 deletions src/Builder/DatagridBuilder.php
Expand Up @@ -119,7 +119,7 @@ public function fixFieldDescription(AdminInterface $admin, FieldDescriptionInter
$fieldDescription->setOption('code', $fieldDescription->getOption('code', $fieldDescription->getName()));
$fieldDescription->setOption('name', $fieldDescription->getOption('name', $fieldDescription->getName()));

if (in_array($fieldDescription->getMappingType(), [
if (\in_array($fieldDescription->getMappingType(), [
ClassMetadata::ONE_TO_MANY,
ClassMetadata::MANY_TO_MANY,
ClassMetadata::MANY_TO_ONE,
Expand All @@ -141,7 +141,7 @@ public function addFilter(DatagridInterface $datagrid, $type, FieldDescriptionIn
$options = $guessType->getOptions();

foreach ($options as $name => $value) {
if (is_array($value)) {
if (\is_array($value)) {
$fieldDescription->setOption($name, array_merge($value, $fieldDescription->getOption($name, [])));
} else {
$fieldDescription->setOption($name, $fieldDescription->getOption($name, $value));
Expand Down
10 changes: 5 additions & 5 deletions src/Builder/FormContractor.php
Expand Up @@ -68,7 +68,7 @@ public function fixFieldDescription(AdminInterface $admin, FieldDescriptionInter
throw new \RuntimeException(sprintf(
'Please define a type for field `%s` in `%s`',
$fieldDescription->getName(),
get_class($admin)
\get_class($admin)
));
}

Expand Down Expand Up @@ -98,8 +98,8 @@ public function getDefaultOptions($type, FieldDescriptionInterface $fieldDescrip
$options = [];
$options['sonata_field_description'] = $fieldDescription;

// NEXT_MAJOR: Check only against FQCNs when dropping support for form mapping
if (in_array($type, [
// NEXT_MAJOR: Check only against FQCNs when dropping support for Symfony 2.8
if (\in_array($type, [
'sonata_type_model',
'sonata_type_model_list',
'sonata_type_model_hidden',
Expand Down Expand Up @@ -143,7 +143,7 @@ public function getDefaultOptions($type, FieldDescriptionInterface $fieldDescrip
));
}

if (!in_array($fieldDescription->getMappingType(), [
if (!\in_array($fieldDescription->getMappingType(), [
ClassMetadata::ONE_TO_ONE,
ClassMetadata::MANY_TO_ONE,
])) {
Expand Down Expand Up @@ -193,7 +193,7 @@ public function getDefaultOptions($type, FieldDescriptionInterface $fieldDescrip
*/
private function hasAssociation(FieldDescriptionInterface $fieldDescription)
{
return in_array($fieldDescription->getMappingType(), [
return \in_array($fieldDescription->getMappingType(), [
ClassMetadata::ONE_TO_MANY,
ClassMetadata::MANY_TO_MANY,
ClassMetadata::MANY_TO_ONE,
Expand Down
6 changes: 3 additions & 3 deletions src/Builder/ListBuilder.php
Expand Up @@ -104,7 +104,7 @@ public function fixFieldDescription(AdminInterface $admin, FieldDescriptionInter
throw new \RuntimeException(sprintf(
'Please define a type for field `%s` in `%s`',
$fieldDescription->getName(),
get_class($admin)
\get_class($admin)
));
}

Expand Down Expand Up @@ -144,7 +144,7 @@ public function fixFieldDescription(AdminInterface $admin, FieldDescriptionInter
}
}

if (in_array($fieldDescription->getMappingType(), [
if (\in_array($fieldDescription->getMappingType(), [
ClassMetadata::MANY_TO_ONE,
ClassMetadata::ONE_TO_ONE,
ClassMetadata::ONE_TO_MANY,
Expand All @@ -163,7 +163,7 @@ public function buildActionFieldDescription(FieldDescriptionInterface $fieldDesc
$fieldDescription->setTemplate('@SonataAdmin/CRUD/list__action.html.twig');
}

if (in_array($fieldDescription->getType(), [null, '_action'], true)) {
if (\in_array($fieldDescription->getType(), [null, '_action'], true)) {
$fieldDescription->setType('actions');
}

Expand Down
2 changes: 1 addition & 1 deletion src/Builder/ShowBuilder.php
Expand Up @@ -81,7 +81,7 @@ public function fixFieldDescription(AdminInterface $admin, FieldDescriptionInter
}

if (!$fieldDescription->getType()) {
throw new \RuntimeException(sprintf('Please define a type for field `%s` in `%s`', $fieldDescription->getName(), get_class($admin)));
throw new \RuntimeException(sprintf('Please define a type for field `%s` in `%s`', $fieldDescription->getName(), \get_class($admin)));
}

$fieldDescription->setOption('code', $fieldDescription->getOption('code', $fieldDescription->getName()));
Expand Down
2 changes: 1 addition & 1 deletion src/Datagrid/OrderByToSelectWalker.php
Expand Up @@ -60,7 +60,7 @@ public function walkSelectStatement(SelectStatement $AST): void
if ($idVar instanceof IdentityFunction) {
$idVar = $idVar->pathExpression->identificationVariable;
}
if (!is_string($idVar)) {
if (!\is_string($idVar)) {
continue;
}
$field = $selectExpression->fieldIdentificationVariable;
Expand Down
39 changes: 16 additions & 23 deletions src/Datagrid/Pager.php
Expand Up @@ -13,9 +13,7 @@

namespace Sonata\DoctrineORMAdminBundle\Datagrid;

use Doctrine\ORM\AbstractQuery;
use Doctrine\ORM\Query;
use Doctrine\ORM\Tools\Pagination\CountWalker;
use Sonata\AdminBundle\Datagrid\Pager as BasePager;

/**
Expand All @@ -36,18 +34,17 @@ public function computeNbResult()
{
$countQuery = clone $this->getQuery();

if (count($this->getParameters()) > 0) {
if (\count($this->getParameters()) > 0) {
$countQuery->setParameters($this->getParameters());
}

$query = $countQuery->getQuery();
$query->setHint(
CountWalker::HINT_DISTINCT,
$countQuery instanceof ProxyQuery ? $countQuery->isDistinct() : true
);
$this->appendTreeWalker($query, CountWalker::class);
$countQuery->select(sprintf(
'count(%s %s) as cnt',
$countQuery instanceof ProxyQuery && !$countQuery->isDistinct() ? null : 'DISTINCT',
$this->getColumnsForQuery(current($countQuery->getRootAliases()))
));

return $query->getSingleScalarResult();
return $countQuery->resetDQLPart('orderBy')->getQuery()->getSingleScalarResult();
}

public function getResults($hydrationMode = Query::HYDRATE_OBJECT)
Expand All @@ -69,7 +66,7 @@ public function init(): void
$this->getQuery()->setFirstResult(null);
$this->getQuery()->setMaxResults(null);

if (count($this->getParameters()) > 0) {
if (\count($this->getParameters()) > 0) {
$this->getQuery()->setParameters($this->getParameters());
}

Expand All @@ -85,20 +82,16 @@ public function init(): void
}
}

/**
* Appends a custom tree walker to the tree walkers hint.
*
* @param string $walkerClass
*/
private function appendTreeWalker(AbstractQuery $query, $walkerClass): void
private function getColumnsForQuery(string $rootAlias): string
{
$hints = $query->getHint(Query::HINT_CUSTOM_TREE_WALKERS);

if (false === $hints) {
$hints = [];
if (1 === \count($countColumns = $this->getCountColumn())) {
return $rootAlias.'.'.current($countColumns);
}

$hints[] = $walkerClass;
$query->setHint(Query::HINT_CUSTOM_TREE_WALKERS, $hints);
$columns = implode(",'-',", array_map(function ($column) use ($rootAlias) {
return "$rootAlias.$column";
}, $countColumns));

return "concat($columns)";
}
}
12 changes: 6 additions & 6 deletions src/Datagrid/ProxyQuery.php
Expand Up @@ -75,7 +75,7 @@ public function __construct($queryBuilder)

public function __call($name, $args)
{
return call_user_func_array([$this->queryBuilder, $name], $args);
return \call_user_func_array([$this->queryBuilder, $name], $args);
}

public function __get($name)
Expand All @@ -98,7 +98,7 @@ public function __clone()
*/
final public function setDistinct($distinct)
{
if (!is_bool($distinct)) {
if (!\is_bool($distinct)) {
throw new \InvalidArgumentException('$distinct is not a boolean');
}

Expand Down Expand Up @@ -155,7 +155,7 @@ public function execute(array $params = [], $hydrationMode = null)

foreach ($identifierFields as $identifierField) {
$order = $rootAlias.'.'.$identifierField;
if (!in_array($order, $existingOrders)) {
if (!\in_array($order, $existingOrders)) {
$queryBuilder->addOrderBy(
$order,
$this->getSortOrder() // reusing the sort order is the most natural way to go
Expand Down Expand Up @@ -186,7 +186,7 @@ public function getSortBy()

public function setSortOrder($sortOrder)
{
if (!in_array(strtoupper($sortOrder), $validSortOrders = ['ASC', 'DESC'])) {
if (!\in_array(strtoupper($sortOrder), $validSortOrders = ['ASC', 'DESC'])) {
throw new \InvalidArgumentException(sprintf(
'"%s" is not a valid sort order, valid values are "%s"',
$sortOrder,
Expand Down Expand Up @@ -271,7 +271,7 @@ public function entityJoin(array $associationMappings)
}

$newAlias .= '_'.$associationMapping['fieldName'];
if (!in_array($newAlias, $this->entityJoinAliases)) {
if (!\in_array($newAlias, $this->entityJoinAliases)) {
$this->entityJoinAliases[] = $newAlias;
$this->queryBuilder->leftJoin(sprintf('%s.%s', $alias, $associationMapping['fieldName']), $newAlias);
}
Expand Down Expand Up @@ -361,7 +361,7 @@ protected function getFixedQueryBuilder(QueryBuilder $queryBuilder)

// step 4 : alter the query to match the targeted ids
foreach ($idxMatrix as $idName => $idx) {
if (count($idx) > 0) {
if (\count($idx) > 0) {
$idxParamName = sprintf('%s_idx', $idName);
$idxParamName = preg_replace('/[^\w]+/', '_', $idxParamName);
$queryBuilder->andWhere(sprintf('%s IN (:%s)', $selects[$idName], $idxParamName));
Expand Down
Expand Up @@ -31,7 +31,7 @@ public function process(ContainerBuilder $container): void
$force = $container->getParameter('sonata_doctrine_orm_admin.audit.force');

foreach ($container->findTaggedServiceIds('sonata.admin') as $id => $attributes) {
if ($attributes[0]['manager_type'] != 'orm') {
if ('orm' != $attributes[0]['manager_type']) {
continue;
}

Expand Down
4 changes: 2 additions & 2 deletions src/DependencyInjection/Compiler/AddTemplatesCompilerPass.php
Expand Up @@ -28,7 +28,7 @@ public function process(ContainerBuilder $container): void
$templates = $container->getParameter('sonata_doctrine_orm_admin.templates');

foreach ($container->findTaggedServiceIds('sonata.admin') as $id => $attributes) {
if (!isset($attributes[0]['manager_type']) || $attributes[0]['manager_type'] != 'orm') {
if (!isset($attributes[0]['manager_type']) || 'orm' != $attributes[0]['manager_type']) {
continue;
}

Expand Down Expand Up @@ -62,7 +62,7 @@ public function mergeMethodCall(Definition $definition, $name, $value): void

foreach ($methodCalls as &$calls) {
foreach ($calls as &$call) {
if (is_string($call)) {
if (\is_string($call)) {
if ($call !== $name) {
continue 2;
}
Expand Down
4 changes: 2 additions & 2 deletions src/Filter/AbstractDateFilter.php
Expand Up @@ -38,7 +38,7 @@ abstract class AbstractDateFilter extends Filter
public function filter(ProxyQueryInterface $queryBuilder, $alias, $field, $data): void
{
// check data sanity
if (!$data || !is_array($data) || !array_key_exists('value', $data)) {
if (!$data || !\is_array($data) || !array_key_exists('value', $data)) {
return;
}

Expand Down Expand Up @@ -110,7 +110,7 @@ public function filter(ProxyQueryInterface $queryBuilder, $alias, $field, $data)
}

// null / not null only check for col
if (in_array($operator, ['NULL', 'NOT NULL'])) {
if (\in_array($operator, ['NULL', 'NOT NULL'])) {
$this->applyWhere($queryBuilder, sprintf('%s.%s IS %s ', $alias, $field, $operator));

return;
Expand Down
10 changes: 5 additions & 5 deletions src/Filter/BooleanFilter.php
Expand Up @@ -22,27 +22,27 @@ class BooleanFilter extends Filter
{
public function filter(ProxyQueryInterface $queryBuilder, $alias, $field, $data): void
{
if (!$data || !is_array($data) || !array_key_exists('type', $data) || !array_key_exists('value', $data)) {
if (!$data || !\is_array($data) || !array_key_exists('type', $data) || !array_key_exists('value', $data)) {
return;
}

if (is_array($data['value'])) {
if (\is_array($data['value'])) {
$values = [];
foreach ($data['value'] as $v) {
if (!in_array($v, [BooleanType::TYPE_NO, BooleanType::TYPE_YES])) {
if (!\in_array($v, [BooleanType::TYPE_NO, BooleanType::TYPE_YES])) {
continue;
}

$values[] = (BooleanType::TYPE_YES == $v) ? 1 : 0;
}

if (0 == count($values)) {
if (0 == \count($values)) {
return;
}

$this->applyWhere($queryBuilder, $queryBuilder->expr()->in(sprintf('%s.%s', $alias, $field), $values));
} else {
if (!in_array($data['value'], [BooleanType::TYPE_NO, BooleanType::TYPE_YES])) {
if (!\in_array($data['value'], [BooleanType::TYPE_NO, BooleanType::TYPE_YES])) {
return;
}

Expand Down
4 changes: 2 additions & 2 deletions src/Filter/CallbackFilter.php
Expand Up @@ -22,11 +22,11 @@ class CallbackFilter extends Filter
{
public function filter(ProxyQueryInterface $queryBuilder, $alias, $field, $data): void
{
if (!is_callable($this->getOption('callback'))) {
if (!\is_callable($this->getOption('callback'))) {
throw new \RuntimeException(sprintf('Please provide a valid callback option "filter" for field "%s"', $this->getName()));
}

$this->active = call_user_func($this->getOption('callback'), $queryBuilder, $alias, $field, $data);
$this->active = \call_user_func($this->getOption('callback'), $queryBuilder, $alias, $field, $data);
}

public function getDefaultOptions()
Expand Down
8 changes: 4 additions & 4 deletions src/Filter/ChoiceFilter.php
Expand Up @@ -22,16 +22,16 @@ class ChoiceFilter extends Filter
{
public function filter(ProxyQueryInterface $queryBuilder, $alias, $field, $data): void
{
if (!$data || !is_array($data) || !array_key_exists('type', $data) || !array_key_exists('value', $data)) {
if (!$data || !\is_array($data) || !array_key_exists('type', $data) || !array_key_exists('value', $data)) {
return;
}

if (is_array($data['value'])) {
if (0 == count($data['value'])) {
if (\is_array($data['value'])) {
if (0 == \count($data['value'])) {
return;
}

if (in_array('all', $data['value'], true)) {
if (\in_array('all', $data['value'], true)) {
return;
}

Expand Down
4 changes: 2 additions & 2 deletions src/Filter/ClassFilter.php
Expand Up @@ -23,11 +23,11 @@ class ClassFilter extends Filter
{
public function filter(ProxyQueryInterface $queryBuilder, $alias, $field, $data): void
{
if (!$data || !is_array($data) || !array_key_exists('value', $data)) {
if (!$data || !\is_array($data) || !array_key_exists('value', $data)) {
return;
}

if (0 == strlen($data['value'])) {
if (0 == \strlen($data['value'])) {
return;
}

Expand Down
2 changes: 1 addition & 1 deletion src/Filter/Filter.php
Expand Up @@ -27,7 +27,7 @@ abstract class Filter extends BaseFilter
public function apply($queryBuilder, $value): void
{
$this->value = $value;
if (is_array($value) && array_key_exists('value', $value)) {
if (\is_array($value) && array_key_exists('value', $value)) {
list($alias, $field) = $this->association($queryBuilder, $value);

$this->filter($queryBuilder, $alias, $field, $value);
Expand Down

0 comments on commit 93ea1a4

Please sign in to comment.