diff --git a/src/DataLoader/DoctrineDataLoader.php b/src/DataLoader/DoctrineDataLoader.php index e5bd976..323ad55 100644 --- a/src/DataLoader/DoctrineDataLoader.php +++ b/src/DataLoader/DoctrineDataLoader.php @@ -29,7 +29,7 @@ public function getResults(): iterable { /** @var QueryBuilder $qb */ $qb = (clone $this->options[self::OPT_QUERY_BUILDER]); - $qb->select('COUNT(' . $qb->getRootAliases()[0] . ')'); + $qb->select('COUNT('.$qb->getRootAliases()[0].')'); $qb->resetDQLPart('groupBy'); $qb->resetDQLPart('orderBy'); $this->paginationExtension->setTotalResults((int) $qb->getQuery()->getSingleScalarResult()); diff --git a/src/DependencyInjection/whatwedoTableExtension.php b/src/DependencyInjection/whatwedoTableExtension.php index 2693a82..2b14cb4 100644 --- a/src/DependencyInjection/whatwedoTableExtension.php +++ b/src/DependencyInjection/whatwedoTableExtension.php @@ -17,7 +17,7 @@ public function load(array $configs, ContainerBuilder $container): void $configuration = new Configuration(); $this->processConfiguration($configuration, $configs); - $loader = new YamlFileLoader($container, new FileLocator(__DIR__ . '/../Resources/config')); + $loader = new YamlFileLoader($container, new FileLocator(__DIR__.'/../Resources/config')); $loader->load('services.yml'); } diff --git a/src/EventListener/AjaxFilterSearchListener.php b/src/EventListener/AjaxFilterSearchListener.php index c3d2404..bb2078c 100644 --- a/src/EventListener/AjaxFilterSearchListener.php +++ b/src/EventListener/AjaxFilterSearchListener.php @@ -63,7 +63,7 @@ public function searchResultSet(ResultRequestEvent $requestEvent) $ids = $this->indexRepository->search($term, $class); $queryBuilder = $requestEvent->getQueryBuilder() ?: $this->entityManager->getRepository($class) ->createQueryBuilder('e'); - $entities = $queryBuilder->andWhere($queryBuilder->getRootAliases()[0] . '.id IN (:ids)') + $entities = $queryBuilder->andWhere($queryBuilder->getRootAliases()[0].'.id IN (:ids)') ->setParameter('ids', $ids) ->getQuery() ->getResult(); diff --git a/src/Extension/FilterExtension.php b/src/Extension/FilterExtension.php index d13d3b1..3c2047e 100644 --- a/src/Extension/FilterExtension.php +++ b/src/Extension/FilterExtension.php @@ -312,7 +312,7 @@ private static function labelCallable(Table $table, $property) private static function jsonSearchCallable(string $entityClass) { - throw new \Exception('you need to define a json search callable for class "' . $entityClass . '".'); + throw new \Exception('you need to define a json search callable for class "'.$entityClass.'".'); } /** @@ -323,7 +323,7 @@ private static function jsonSearchCallable(string $entityClass) private function addFilterAutomatically(Table $table, QueryBuilder $queryBuilder, callable $labelCallable, callable $jsonSearchCallable, \ReflectionProperty $property, string $namespace) { $acronymNoSuffix = $property->getName(); - $acronym = '_' . $property->getName(); + $acronym = '_'.$property->getName(); $label = \call_user_func($labelCallable, $table, $property->getName()); $allAliases = $queryBuilder->getAllAliases(); $isPropertySelected = \in_array($acronym, $allAliases, true); @@ -339,7 +339,7 @@ private function addFilterAutomatically(Table $table, QueryBuilder $queryBuilder return $this->getFilter($acronymNoSuffix); } } catch (\InvalidArgumentException $exception) { - $this->logger->warning('could not automatically add filter for "' . $label . '"', [ + $this->logger->warning('could not automatically add filter for "'.$label.'"', [ 'message' => $exception->getMessage(), 'trace' => $exception->getTraceAsString(), ]); diff --git a/src/Filter/FilterGuesser.php b/src/Filter/FilterGuesser.php index 4d23c2c..033202a 100644 --- a/src/Filter/FilterGuesser.php +++ b/src/Filter/FilterGuesser.php @@ -127,7 +127,7 @@ private function newRelationFilter(string $class, string $acronym, string $targe } if (mb_strpos($targetEntity, '\\') === false) { - $targetEntity = $namespace . '\\' . $targetEntity; + $targetEntity = $namespace.'\\'.$targetEntity; } return new (self::RELATION_TYPE[$class])( diff --git a/src/Filter/Type/AjaxManyToManyFilterType.php b/src/Filter/Type/AjaxManyToManyFilterType.php index 7dc1fc0..f9344dc 100644 --- a/src/Filter/Type/AjaxManyToManyFilterType.php +++ b/src/Filter/Type/AjaxManyToManyFilterType.php @@ -35,7 +35,7 @@ class AjaxManyToManyFilterType extends AjaxOneToManyFilterType { public function toDql(string $operator, string $value, string $parameterName, QueryBuilder $queryBuilder) { - $targetParameter = 'target_' . hash('crc32', random_bytes(10)); + $targetParameter = 'target_'.hash('crc32', random_bytes(10)); $queryBuilder->setParameter( $targetParameter, $this->entityManager->getRepository($this->targetClass)->find($value) @@ -43,7 +43,7 @@ public function toDql(string $operator, string $value, string $parameterName, Qu switch ($operator) { case static::CRITERIA_EQUAL: - return $queryBuilder->expr()->isMemberOf(':' . $targetParameter, $this->column); + return $queryBuilder->expr()->isMemberOf(':'.$targetParameter, $this->column); case static::CRITERIA_NOT_EQUAL: return $queryBuilder->expr()->not($queryBuilder->expr()->isMemberOf($targetParameter, $this->column)); } diff --git a/src/Filter/Type/AjaxOneToManyFilterType.php b/src/Filter/Type/AjaxOneToManyFilterType.php index a9ad4ed..3b5c3d9 100644 --- a/src/Filter/Type/AjaxOneToManyFilterType.php +++ b/src/Filter/Type/AjaxOneToManyFilterType.php @@ -75,7 +75,7 @@ public function getValueField(?string $value = '0'): string public function toDql(string $operator, string $value, string $parameterName, QueryBuilder $queryBuilder) { - $targetParameter = 'target_' . hash('crc32', random_bytes(10)); + $targetParameter = 'target_'.hash('crc32', random_bytes(10)); $queryBuilder->setParameter( $targetParameter, $this->entityManager->getRepository($this->targetClass)->find($value) @@ -83,9 +83,9 @@ public function toDql(string $operator, string $value, string $parameterName, Qu switch ($operator) { case static::CRITERIA_EQUAL: - return $queryBuilder->expr()->in($this->column, ':' . $targetParameter); + return $queryBuilder->expr()->in($this->column, ':'.$targetParameter); case static::CRITERIA_NOT_EQUAL: - return $queryBuilder->expr()->notIn($this->column, ':' . $targetParameter); + return $queryBuilder->expr()->notIn($this->column, ':'.$targetParameter); } return null; diff --git a/src/Filter/Type/AjaxRelationFilterType.php b/src/Filter/Type/AjaxRelationFilterType.php index 7432367..4921646 100644 --- a/src/Filter/Type/AjaxRelationFilterType.php +++ b/src/Filter/Type/AjaxRelationFilterType.php @@ -56,17 +56,17 @@ public function toDql(string $operator, string $value, string $parameterName, Qu switch ($operator) { case static::CRITERIA_EQUAL: if ((int) $value) { - return $queryBuilder->expr()->eq($this->getColumn() . '.id', (int) $value); + return $queryBuilder->expr()->eq($this->getColumn().'.id', (int) $value); } - return $queryBuilder->expr()->isNull($this->getColumn() . '.id'); + return $queryBuilder->expr()->isNull($this->getColumn().'.id'); case static::CRITERIA_NOT_EQUAL: if ((int) $value) { - return $queryBuilder->expr()->neq($this->getColumn() . '.id', (int) $value); + return $queryBuilder->expr()->neq($this->getColumn().'.id', (int) $value); } - return $queryBuilder->expr()->isNotNull($this->getColumn() . '.id'); + return $queryBuilder->expr()->isNotNull($this->getColumn().'.id'); } return null; diff --git a/src/Filter/Type/ChoiceFilterType.php b/src/Filter/Type/ChoiceFilterType.php index 97edbf0..eed2f2e 100644 --- a/src/Filter/Type/ChoiceFilterType.php +++ b/src/Filter/Type/ChoiceFilterType.php @@ -52,9 +52,9 @@ public function toDql(string $operator, string $value, string $parameterName, Qu switch ($operator) { case static::CRITERIA_EQUAL: - return $queryBuilder->expr()->eq($this->getColumn(), ':' . $parameterName); + return $queryBuilder->expr()->eq($this->getColumn(), ':'.$parameterName); case static::CRITERIA_NOT_EQUAL: - return $queryBuilder->expr()->neq($this->getColumn(), ':' . $parameterName); + return $queryBuilder->expr()->neq($this->getColumn(), ':'.$parameterName); } return false; diff --git a/src/Filter/Type/DatetimeFilterType.php b/src/Filter/Type/DatetimeFilterType.php index e93b9de..56f783a 100644 --- a/src/Filter/Type/DatetimeFilterType.php +++ b/src/Filter/Type/DatetimeFilterType.php @@ -70,14 +70,14 @@ public function toDql(string $operator, string $value, string $parameterName, Qu case static::CRITERIA_IN_YEAR: $startYear = clone $date; $endYear = clone $date; - $startYear->modify('first day of January ' . date('Y'))->setTime(0, 0, 0); - $endYear->modify('last day of December ' . date('Y'))->setTime(23, 59, 59); - $queryBuilder->setParameter($parameterName . '_start', $startYear->format(static::getQueryDataFormat())); - $queryBuilder->setParameter($parameterName . '_end', $endYear->format(static::getQueryDataFormat())); + $startYear->modify('first day of January '.date('Y'))->setTime(0, 0, 0); + $endYear->modify('last day of December '.date('Y'))->setTime(23, 59, 59); + $queryBuilder->setParameter($parameterName.'_start', $startYear->format(static::getQueryDataFormat())); + $queryBuilder->setParameter($parameterName.'_end', $endYear->format(static::getQueryDataFormat())); return $queryBuilder->expr()->andX( - $queryBuilder->expr()->gte($this->getColumn(), sprintf(':%s', $parameterName . '_start')), - $queryBuilder->expr()->lte($this->getColumn(), sprintf(':%s', $parameterName . '_end')) + $queryBuilder->expr()->gte($this->getColumn(), sprintf(':%s', $parameterName.'_start')), + $queryBuilder->expr()->lte($this->getColumn(), sprintf(':%s', $parameterName.'_end')) ); } diff --git a/src/Filter/Type/NumberFilterType.php b/src/Filter/Type/NumberFilterType.php index 348279e..3b071a1 100644 --- a/src/Filter/Type/NumberFilterType.php +++ b/src/Filter/Type/NumberFilterType.php @@ -41,13 +41,13 @@ public function toDql(string $operator, string $value, string $parameterName, Qu switch ($operator) { case static::CRITERIA_EQUAL: - return $queryBuilder->expr()->eq($this->getColumn(), ':' . $parameterName); + return $queryBuilder->expr()->eq($this->getColumn(), ':'.$parameterName); case static::CRITERIA_NOT_EQUAL: - return $queryBuilder->expr()->neq($this->getColumn(), ':' . $parameterName); + return $queryBuilder->expr()->neq($this->getColumn(), ':'.$parameterName); case static::CRITERIA_BIGGER_THAN: - return $queryBuilder->expr()->gt($this->getColumn(), ':' . $parameterName); + return $queryBuilder->expr()->gt($this->getColumn(), ':'.$parameterName); case static::CRITERIA_SMALLER_THAN: - return $queryBuilder->expr()->lt($this->getColumn(), ':' . $parameterName); + return $queryBuilder->expr()->lt($this->getColumn(), ':'.$parameterName); } return false; diff --git a/src/Filter/Type/TextFilterType.php b/src/Filter/Type/TextFilterType.php index edbc9f9..616e412 100644 --- a/src/Filter/Type/TextFilterType.php +++ b/src/Filter/Type/TextFilterType.php @@ -53,40 +53,40 @@ public function toDql(string $operator, string $value, string $parameterName, Qu case static::CRITERIA_EQUAL: $queryBuilder->setParameter($parameterName, $value); - return $queryBuilder->expr()->eq($this->getColumn(), ':' . $parameterName); + return $queryBuilder->expr()->eq($this->getColumn(), ':'.$parameterName); case static::CRITERIA_NOT_EQUAL: $queryBuilder->setParameter($parameterName, $value); - return $queryBuilder->expr()->neq($this->getColumn(), ':' . $parameterName); + return $queryBuilder->expr()->neq($this->getColumn(), ':'.$parameterName); case static::CRITERIA_STARTS_WITH: - $queryBuilder->setParameter($parameterName, $value . '%'); + $queryBuilder->setParameter($parameterName, $value.'%'); - return $queryBuilder->expr()->like($this->getColumn(), ':' . $parameterName); + return $queryBuilder->expr()->like($this->getColumn(), ':'.$parameterName); case static::CRITERIA_ENDS_WITH: - $queryBuilder->setParameter($parameterName, '%' . $value); + $queryBuilder->setParameter($parameterName, '%'.$value); - return $queryBuilder->expr()->like($this->getColumn(), ':' . $parameterName); + return $queryBuilder->expr()->like($this->getColumn(), ':'.$parameterName); case static::CRITERIA_CONTAINS: - $queryBuilder->setParameter($parameterName, '%' . $value . '%'); + $queryBuilder->setParameter($parameterName, '%'.$value.'%'); - return $queryBuilder->expr()->like($this->getColumn(), ':' . $parameterName); + return $queryBuilder->expr()->like($this->getColumn(), ':'.$parameterName); case static::CRITERIA_IS_EMPTY: $queryBuilder->setParameter($parameterName, ''); return $queryBuilder->expr()->orX()->addMultiple([ $queryBuilder->expr()->isNull($this->getColumn()), - $queryBuilder->expr()->eq($this->getColumn(), ':' . $parameterName), + $queryBuilder->expr()->eq($this->getColumn(), ':'.$parameterName), ]); case static::CRITERIA_IS_NOT_EMPTY: $queryBuilder->setParameter($parameterName, ''); - return $queryBuilder->expr()->gt($this->getColumn(), ':' . $parameterName); + return $queryBuilder->expr()->gt($this->getColumn(), ':'.$parameterName); } return false; diff --git a/src/Helper/RouterHelper.php b/src/Helper/RouterHelper.php index 83855fa..cb6a0f7 100644 --- a/src/Helper/RouterHelper.php +++ b/src/Helper/RouterHelper.php @@ -52,6 +52,6 @@ class RouterHelper public static function getParameterName(string $identifier, string $parameter, $addition = null): string { return sprintf('%s_%s', str_replace('.', '_', $identifier), $parameter) - . ($addition ? '_' . str_replace('.', '_', $addition) : ''); + .($addition ? '_'.str_replace('.', '_', $addition) : ''); } } diff --git a/src/Manager/ExportManager.php b/src/Manager/ExportManager.php index 011065f..e4360b0 100644 --- a/src/Manager/ExportManager.php +++ b/src/Manager/ExportManager.php @@ -59,7 +59,7 @@ protected function createHeader(Worksheet $sheet, array $tableColumns): void } $columnIndex = $sheet->getColumnDimensionByColumn($colIndex + 1)->getColumnIndex(); - $cell = $sheet->getCell($columnIndex . '1'); + $cell = $sheet->getCell($columnIndex.'1'); $cell->setValueExplicit($value, DataType::TYPE_STRING2); $cell->getStyle()->getFont()->setBold(true); } @@ -89,7 +89,7 @@ protected function createTable(Worksheet $sheet, Table $table, array $tableColum } } $columnIndex = $sheet->getColumnDimensionByColumn($colIndex)->getColumnIndex(); - $cell = $sheet->getCell($columnIndex . ($rowIndex + 2)); + $cell = $sheet->getCell($columnIndex.($rowIndex + 2)); $cell->setValueExplicit($data, DataType::TYPE_STRING2); ++$colIndex; diff --git a/src/Resources/views/tailwind_2/_table.html.twig b/src/Resources/views/tailwind_2/_table.html.twig index fb02a91..4674d13 100644 --- a/src/Resources/views/tailwind_2/_table.html.twig +++ b/src/Resources/views/tailwind_2/_table.html.twig @@ -197,7 +197,8 @@ {% endif %} {% endif %} {% endapply %} - {{ whatwedo_table_column_render(column, row) }} + {% set columnValue = whatwedo_table_column_render(column, row) %} + {{ wwd_is_html_safe(column) ? columnValue|raw : columnValue }} {% if column.option('link_the_column_content') and columnLink|default(false) %}{% endif %} {% endfor %} diff --git a/src/Twig/TableExtension.php b/src/Twig/TableExtension.php index d82fbdf..d802cae 100644 --- a/src/Twig/TableExtension.php +++ b/src/Twig/TableExtension.php @@ -92,7 +92,7 @@ protected function post2Name(array $array): array $new_key = ''; foreach ($parts as $part) { if ($i !== 0) { - $part = '[' . $part . ']'; + $part = '['.$part.']'; } $new_key .= $part; $i++; @@ -110,9 +110,9 @@ protected function flattenArray($array, $prefix = '') $result = []; foreach ($array as $key => $value) { if (is_array($value)) { - $result = $result + $this->flattenArray($value, $prefix . $key . '.'); + $result = $result + $this->flattenArray($value, $prefix.$key.'.'); } else { - $result[$prefix . $key] = $value; + $result[$prefix.$key] = $value; } } return $result; diff --git a/src/Twig/TableRenderExtension.php b/src/Twig/TableRenderExtension.php index 131a5e5..b201733 100644 --- a/src/Twig/TableRenderExtension.php +++ b/src/Twig/TableRenderExtension.php @@ -27,18 +27,20 @@ public function __construct( public function getFunctions(): array { - $options = [ + $options = $noSafeOptions = [ 'needs_context' => true, 'is_safe' => ['html'], 'is_safe_callback' => true, 'blockName' => 'blockName', ]; + $noSafeOptions['is_safe'] = []; return [ new TwigFunction('whatwedo_table_render', fn ($context, Table $table) => $this->renderTable($context, $table), $options), new TwigFunction('whatwedo_table_only_render', fn ($context, Table $table) => $this->renderTable($context, $table, 'table_table'), $options), new TwigFunction('whatwedo_table_action_render', fn ($context, Action $action, $entity) => $this->renderTableAction($context, $action, $entity), $options), new TwigFunction('whatwedo_table_column_render', fn ($context, Column $column, $entity) => $this->renderTableColumn($context, $column, $entity), $options), + new TwigFunction('araise_table_column_render', fn ($context, Column $column, $entity) => $this->renderTableColumn($context, $column, $entity), $noSafeOptions), ]; } diff --git a/tests/App/Factory/CompanyFactory.php b/tests/App/Factory/CompanyFactory.php index 2d7ca50..57b9975 100644 --- a/tests/App/Factory/CompanyFactory.php +++ b/tests/App/Factory/CompanyFactory.php @@ -34,7 +34,7 @@ protected function getDefaults(): array 'name' => self::faker()->company(), 'city' => self::faker()->city(), 'country' => self::faker()->country(), - 'taxIdentificationNumber' => self::faker()->numerify(self::faker()->countryCode() . '###.####.###.#.###.##'), + 'taxIdentificationNumber' => self::faker()->numerify(self::faker()->countryCode().'###.####.###.#.###.##'), ]; } diff --git a/tests/App/Kernel.php b/tests/App/Kernel.php index 268a10e..b0aed17 100644 --- a/tests/App/Kernel.php +++ b/tests/App/Kernel.php @@ -18,11 +18,11 @@ public function __construct() public function getCacheDir(): string { - return $this->getProjectDir() . '/../../var/cache/' . $this->environment; + return $this->getProjectDir().'/../../var/cache/'.$this->environment; } public function getProjectDir(): string { - return \dirname(__DIR__) . '/App'; + return \dirname(__DIR__).'/App'; } } diff --git a/tests/App/config/bootstrap.php b/tests/App/config/bootstrap.php index dd50135..7c2c504 100644 --- a/tests/App/config/bootstrap.php +++ b/tests/App/config/bootstrap.php @@ -4,7 +4,7 @@ use Symfony\Component\Dotenv\Dotenv; -require dirname(__DIR__) . '/../../vendor/autoload.php'; +require dirname(__DIR__).'/../../vendor/autoload.php'; //// Load cached env vars if the .env.local.php file exists //// Run "composer dump-env prod" to create it (requires symfony/flex >=1.2) diff --git a/tests/App/public/index.php b/tests/App/public/index.php index 801d0f2..4d1dd22 100644 --- a/tests/App/public/index.php +++ b/tests/App/public/index.php @@ -6,7 +6,7 @@ use Symfony\Component\HttpFoundation\Request; use whatwedo\TableBundle\Tests\App\Kernel; -require dirname(__DIR__) . '/config/bootstrap.php'; +require dirname(__DIR__).'/config/bootstrap.php'; if ($_SERVER['APP_DEBUG']) { umask(0000); diff --git a/tests/TableTest.php b/tests/TableTest.php index b07bbb6..52c1a7e 100644 --- a/tests/TableTest.php +++ b/tests/TableTest.php @@ -170,7 +170,7 @@ public function testDoctrineDataLoderPaginatePage2Table() $tableFactory = self::getContainer()->get(TableFactory::class); $fakeRequest = Request::create('/', 'GET', [ - 'test_' . RouterHelper::PARAMETER_PAGINATION_PAGE => 2, + 'test_'.RouterHelper::PARAMETER_PAGINATION_PAGE => 2, ]); $fakeRequest->setSession(new Session(new MockArraySessionStorage())); diff --git a/tests/bootstrap.php b/tests/bootstrap.php index 59bf713..904fd98 100644 --- a/tests/bootstrap.php +++ b/tests/bootstrap.php @@ -4,6 +4,6 @@ use Symfony\Component\Filesystem\Filesystem; -require \dirname(__DIR__) . '/vendor/autoload.php'; +require \dirname(__DIR__).'/vendor/autoload.php'; -(new Filesystem())->remove(__DIR__ . '/../var'); +(new Filesystem())->remove(__DIR__.'/../var');