Skip to content

Commit 5282de8

Browse files
authored
[Docs] Use AsGrid attribute in filters (#337)
2 parents 5abced8 + 2c915e3 commit 5282de8

File tree

1 file changed

+72
-117
lines changed

1 file changed

+72
-117
lines changed

docs/grid/filters.md

Lines changed: 72 additions & 117 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ Simplest filter type. It can filter by one or multiple fields.
1414
{% tabs %}
1515
{% tab title="PHP (recommended)" %}
1616
{% code title="src/Grid/UserGrid.php" lineNumbers="true" %}
17+
1718
```php
1819
<?php
1920

@@ -26,16 +27,15 @@ use Sylius\Bundle\GridBundle\Builder\Filter\Filter;
2627
use Sylius\Bundle\GridBundle\Builder\Filter\StringFilter;
2728
use Sylius\Bundle\GridBundle\Builder\GridBuilderInterface;
2829
use Sylius\Bundle\GridBundle\Grid\AbstractGrid;
29-
use Sylius\Bundle\GridBundle\Grid\ResourceAwareGridInterface;
30+
use Sylius\Component\Grid\Attribute\AsGrid;
3031

31-
final class UserGrid extends AbstractGrid implements ResourceAwareGridInterface
32+
#[AsGrid(
33+
resourceClass: User::class,
34+
name: 'app_user',
35+
)]
36+
final class UserGrid extends AbstractGrid
3237
{
33-
public static function getName(): string
34-
{
35-
return 'app_user';
36-
}
37-
38-
public function buildGrid(GridBuilderInterface $gridBuilder): void
38+
public function __invoke(GridBuilderInterface $gridBuilder): void
3939
{
4040
$gridBuilder
4141
->withFilters(
@@ -54,11 +54,6 @@ final class UserGrid extends AbstractGrid implements ResourceAwareGridInterface
5454
)
5555
;
5656
}
57-
58-
public function getResourceClass(): string
59-
{
60-
return User::class;
61-
}
6257
}
6358
```
6459
{% endcode %}
@@ -122,6 +117,7 @@ return static function (GridConfig $grid): void {
122117
{% tabs %}
123118
{% tab title="PHP (recommended)" %}
124119
{% code title="src/Grid/UserGrid.php" lineNumbers="true" %}
120+
125121
```php
126122
<?php
127123

@@ -134,16 +130,15 @@ use Sylius\Bundle\GridBundle\Builder\Filter\Filter;
134130
use Sylius\Bundle\GridBundle\Builder\Filter\StringFilter;
135131
use Sylius\Bundle\GridBundle\Builder\GridBuilderInterface;
136132
use Sylius\Bundle\GridBundle\Grid\AbstractGrid;
137-
use Sylius\Bundle\GridBundle\Grid\ResourceAwareGridInterface;
133+
use Sylius\Component\Grid\Attribute\AsGrid;
138134

139-
final class UserGrid extends AbstractGrid implements ResourceAwareGridInterface
135+
#[AsGrid(
136+
resourceClass: User::class,
137+
name: 'app_user',
138+
)]
139+
final class UserGrid extends AbstractGrid
140140
{
141-
public static function getName(): string
142-
{
143-
return 'app_user';
144-
}
145-
146-
public function buildGrid(GridBuilderInterface $gridBuilder): void
141+
public function __invoke(GridBuilderInterface $gridBuilder): void
147142
{
148143
$gridBuilder
149144
->withFilters(
@@ -157,11 +152,6 @@ final class UserGrid extends AbstractGrid implements ResourceAwareGridInterface
157152
)
158153
;
159154
}
160-
161-
public function getResourceClass(): string
162-
{
163-
return User::class;
164-
}
165155
}
166156
```
167157
{% endcode %}
@@ -233,6 +223,7 @@ You can achieve it like this:
233223
{% tabs %}
234224
{% tab title="PHP (recommended)" %}
235225
{% code title="src/Grid/UserGrid.php" lineNumbers="true" %}
226+
236227
```php
237228
<?php
238229

@@ -245,16 +236,15 @@ use Sylius\Bundle\GridBundle\Builder\Filter\Filter;
245236
use Sylius\Bundle\GridBundle\Builder\Filter\StringFilter;
246237
use Sylius\Bundle\GridBundle\Builder\GridBuilderInterface;
247238
use Sylius\Bundle\GridBundle\Grid\AbstractGrid;
248-
use Sylius\Bundle\GridBundle\Grid\ResourceAwareGridInterface;
239+
use Sylius\Component\Grid\Attribute\AsGrid;
249240

250-
final class UserGrid extends AbstractGrid implements ResourceAwareGridInterface
241+
#[AsGrid(
242+
resourceClass: User::class,
243+
name: 'app_user',
244+
)]
245+
final class UserGrid extends AbstractGrid
251246
{
252-
public static function getName(): string
253-
{
254-
return 'app_user';
255-
}
256-
257-
public function buildGrid(GridBuilderInterface $gridBuilder): void
247+
public function __invoke(GridBuilderInterface $gridBuilder): void
258248
{
259249
$gridBuilder
260250
->withFilters(
@@ -270,11 +260,6 @@ final class UserGrid extends AbstractGrid implements ResourceAwareGridInterface
270260
)
271261
;
272262
}
273-
274-
public function getResourceClass(): string
275-
{
276-
return User::class;
277-
}
278263
}
279264
```
280265
{% endcode %}
@@ -333,6 +318,7 @@ you will create an input field that filters user objects based on whether their
333318
{% tabs %}
334319
{% tab title="PHP (recommended)" %}
335320
{% code title="src/Grid/UserGrid.php" lineNumbers="true" %}
321+
336322
```php
337323
<?php
338324

@@ -345,16 +331,15 @@ use Sylius\Bundle\GridBundle\Builder\Filter\Filter;
345331
use Sylius\Bundle\GridBundle\Builder\Filter\BooleanFilter;
346332
use Sylius\Bundle\GridBundle\Builder\GridBuilderInterface;
347333
use Sylius\Bundle\GridBundle\Grid\AbstractGrid;
348-
use Sylius\Bundle\GridBundle\Grid\ResourceAwareGridInterface;
334+
use Sylius\Component\Grid\Attribute\AsGrid;
349335

350-
final class UserGrid extends AbstractGrid implements ResourceAwareGridInterface
336+
#[AsGrid(
337+
resourceClass: User::class,
338+
name: 'app_user',
339+
)]
340+
final class UserGrid extends AbstractGrid
351341
{
352-
public static function getName(): string
353-
{
354-
return 'app_user';
355-
}
356-
357-
public function buildGrid(GridBuilderInterface $gridBuilder): void
342+
public function __invoke(GridBuilderInterface $gridBuilder): void
358343
{
359344
$gridBuilder
360345
->withFilters(
@@ -367,11 +352,6 @@ final class UserGrid extends AbstractGrid implements ResourceAwareGridInterface
367352
)
368353
;
369354
}
370-
371-
public function getResourceClass(): string
372-
{
373-
return User::class;
374-
}
375355
}
376356
```
377357
{% endcode %}
@@ -426,6 +406,7 @@ This filter checks if a chosen datetime field is between given dates.
426406
{% tabs %}
427407
{% tab title="PHP (recommended)" %}
428408
{% code title="src/Grid/UserGrid.php" lineNumbers="true" %}
409+
429410
```php
430411
<?php
431412

@@ -438,16 +419,15 @@ use Sylius\Bundle\GridBundle\Builder\Filter\DateFilter;
438419
use Sylius\Bundle\GridBundle\Builder\Filter\Filter;
439420
use Sylius\Bundle\GridBundle\Builder\GridBuilderInterface;
440421
use Sylius\Bundle\GridBundle\Grid\AbstractGrid;
441-
use Sylius\Bundle\GridBundle\Grid\ResourceAwareGridInterface;
422+
use Sylius\Component\Grid\Attribute\AsGrid;
442423

443-
final class UserGrid extends AbstractGrid implements ResourceAwareGridInterface
424+
#[AsGrid(
425+
resourceClass: User::class,
426+
name: 'app_user',
427+
)]
428+
final class UserGrid extends AbstractGrid
444429
{
445-
public static function getName(): string
446-
{
447-
return 'app_user';
448-
}
449-
450-
public function buildGrid(GridBuilderInterface $gridBuilder): void
430+
public function __invoke(GridBuilderInterface $gridBuilder): void
451431
{
452432
$gridBuilder
453433
->withFilters(
@@ -462,11 +442,6 @@ final class UserGrid extends AbstractGrid implements ResourceAwareGridInterface
462442
)
463443
;
464444
}
465-
466-
public function getResourceClass(): string
467-
{
468-
return User::class;
469-
}
470445
}
471446
```
472447
{% endcode %}
@@ -523,6 +498,7 @@ This type filters by a chosen entity.
523498
{% tabs %}
524499
{% tab title="PHP (recommended)" %}
525500
{% code title="src/Grid/UserGrid.php" lineNumbers="true" %}
501+
526502
```php
527503
<?php
528504

@@ -535,16 +511,15 @@ use Sylius\Bundle\GridBundle\Builder\Filter\EntityFilter;
535511
use Sylius\Bundle\GridBundle\Builder\Filter\Filter;
536512
use Sylius\Bundle\GridBundle\Builder\GridBuilderInterface;
537513
use Sylius\Bundle\GridBundle\Grid\AbstractGrid;
538-
use Sylius\Bundle\GridBundle\Grid\ResourceAwareGridInterface;
514+
use Sylius\Component\Grid\Attribute\AsGrid;
539515

540-
final class UserGrid extends AbstractGrid implements ResourceAwareGridInterface
516+
#[AsGrid(
517+
resourceClass: User::class,
518+
name: 'app_user',
519+
)]
520+
final class UserGrid extends AbstractGrid
541521
{
542-
public static function getName(): string
543-
{
544-
return 'app_user';
545-
}
546-
547-
public function buildGrid(GridBuilderInterface $gridBuilder): void
522+
public function __invoke(GridBuilderInterface $gridBuilder): void
548523
{
549524
$gridBuilder
550525
->withFilters(
@@ -561,11 +536,6 @@ final class UserGrid extends AbstractGrid implements ResourceAwareGridInterface
561536
)
562537
;
563538
}
564-
565-
public function getResourceClass(): string
566-
{
567-
return User::class;
568-
}
569539
}
570540
```
571541
{% endcode %}
@@ -637,6 +607,7 @@ This filter checks if an amount is within the specified range and is in the sele
637607
{% tabs %}
638608
{% tab title="PHP (recommended)" %}
639609
{% code title="src/Grid/UserGrid.php" lineNumbers="true" %}
610+
640611
```php
641612
<?php
642613

@@ -649,16 +620,15 @@ use Sylius\Bundle\GridBundle\Builder\Filter\Filter;
649620
use Sylius\Bundle\GridBundle\Builder\Filter\MoneyFilter;
650621
use Sylius\Bundle\GridBundle\Builder\GridBuilderInterface;
651622
use Sylius\Bundle\GridBundle\Grid\AbstractGrid;
652-
use Sylius\Bundle\GridBundle\Grid\ResourceAwareGridInterface;
623+
use Sylius\Component\Grid\Attribute\AsGrid;
653624

654-
final class UserGrid extends AbstractGrid implements ResourceAwareGridInterface
625+
#[AsGrid(
626+
resourceClass: User::class,
627+
name: 'app_user',
628+
)]
629+
final class UserGrid extends AbstractGrid
655630
{
656-
public static function getName(): string
657-
{
658-
return 'app_user';
659-
}
660-
661-
public function buildGrid(GridBuilderInterface $gridBuilder): void
631+
public function __invoke(GridBuilderInterface $gridBuilder): void
662632
{
663633
$gridBuilder
664634
->withFilters(
@@ -676,11 +646,6 @@ final class UserGrid extends AbstractGrid implements ResourceAwareGridInterface
676646
)
677647
;
678648
}
679-
680-
public function getResourceClass(): string
681-
{
682-
return User::class;
683-
}
684649
}
685650
```
686651
{% endcode %}
@@ -748,6 +713,7 @@ This filter checks if the specified field contains any value
748713
{% tabs %}
749714
{% tab title="PHP (recommended)" %}
750715
{% code title="src/Grid/UserGrid.php" lineNumbers="true" %}
716+
751717
```php
752718
<?php
753719

@@ -760,16 +726,15 @@ use Sylius\Bundle\GridBundle\Builder\Filter\ExistsFilter;
760726
use Sylius\Bundle\GridBundle\Builder\Filter\Filter;
761727
use Sylius\Bundle\GridBundle\Builder\GridBuilderInterface;
762728
use Sylius\Bundle\GridBundle\Grid\AbstractGrid;
763-
use Sylius\Bundle\GridBundle\Grid\ResourceAwareGridInterface;
729+
use Sylius\Component\Grid\Attribute\AsGrid;
764730

765-
final class UserGrid extends AbstractGrid implements ResourceAwareGridInterface
731+
#[AsGrid(
732+
resourceClass: User::class,
733+
name: 'app_user',
734+
)]
735+
final class UserGrid extends AbstractGrid
766736
{
767-
public static function getName(): string
768-
{
769-
return 'app_user';
770-
}
771-
772-
public function buildGrid(GridBuilderInterface $gridBuilder): void
737+
public function __invoke(GridBuilderInterface $gridBuilder): void
773738
{
774739
$gridBuilder
775740
->withFilters(
@@ -783,11 +748,6 @@ final class UserGrid extends AbstractGrid implements ResourceAwareGridInterface
783748
)
784749
;
785750
}
786-
787-
public function getResourceClass(): string
788-
{
789-
return User::class;
790-
}
791751
}
792752
```
793753
{% endcode %}
@@ -843,6 +803,7 @@ This type filters by a value chosen from the defined list
843803
{% tabs %}
844804
{% tab title="PHP (recommended)" %}
845805
{% code title="src/Grid/UserGrid.php" lineNumbers="true" %}
806+
846807
```php
847808
<?php
848809

@@ -855,16 +816,15 @@ use Sylius\Bundle\GridBundle\Builder\Filter\Filter;
855816
use Sylius\Bundle\GridBundle\Builder\Filter\SelectFilter;
856817
use Sylius\Bundle\GridBundle\Builder\GridBuilderInterface;
857818
use Sylius\Bundle\GridBundle\Grid\AbstractGrid;
858-
use Sylius\Bundle\GridBundle\Grid\ResourceAwareGridInterface;
819+
use Sylius\Component\Grid\Attribute\AsGrid;
859820

860-
final class UserGrid extends AbstractGrid implements ResourceAwareGridInterface
821+
#[AsGrid(
822+
resourceClass: User::class,
823+
name: 'app_user',
824+
)]
825+
final class UserGrid extends AbstractGrid
861826
{
862-
public static function getName(): string
863-
{
864-
return 'app_user';
865-
}
866-
867-
public function buildGrid(GridBuilderInterface $gridBuilder): void
827+
public function __invoke(GridBuilderInterface $gridBuilder): void
868828
{
869829
$gridBuilder
870830
->withFilters(
@@ -886,11 +846,6 @@ final class UserGrid extends AbstractGrid implements ResourceAwareGridInterface
886846
)
887847
;
888848
}
889-
890-
public function getResourceClass(): string
891-
{
892-
return User::class;
893-
}
894849
}
895850
```
896851
{% endcode %}

0 commit comments

Comments
 (0)