feat(php-grids): use resourceClass option in AsGrid attribute

This commit is contained in:
Loïc Frémont 2026-07-03 08:51:14 +02:00
parent 2b90aa9a44
commit 28cc179fa9
37 changed files with 35 additions and 276 deletions

View file

@ -26,18 +26,12 @@ use Sylius\Bundle\GridBundle\Builder\Filter\StringFilter;
use Sylius\Bundle\GridBundle\Builder\GridBuilderInterface;
use Sylius\Component\Grid\Attribute\AsGrid;
#[AsGrid(name: self::NAME)]
#[AsGrid(resourceClass: '%sylius.model.admin_user.class%', name: self::NAME)]
final class AdminUserGrid implements AdminUserGridInterface
{
public function __construct(
private readonly string $adminUserClass,
) {
}
public function __invoke(GridBuilderInterface $gridBuilder): void
{
$gridBuilder
->setDriverOption('class', $this->adminUserClass)
->addOrderBy('createdAt', 'desc')
->setLimits([10, 25, 50])
->withFields(

View file

@ -29,11 +29,10 @@ use Sylius\Bundle\GridBundle\Builder\GridBuilderInterface;
use Sylius\Component\Grid\Attribute\AsGrid;
use Sylius\Component\Promotion\Model\CatalogPromotionStates;
#[AsGrid(name: self::NAME)]
#[AsGrid(resourceClass: '%sylius.model.catalog_promotion.class%', name: self::NAME)]
final class CatalogPromotionGrid implements CatalogPromotionGridInterface
{
public function __construct(
private readonly string $catalogPromotionClass,
private readonly string $channelClass,
) {
}
@ -41,7 +40,6 @@ final class CatalogPromotionGrid implements CatalogPromotionGridInterface
public function __invoke(GridBuilderInterface $gridBuilder): void
{
$gridBuilder
->setDriverOption('class', $this->catalogPromotionClass)
->setLimits([10, 25, 50])
->addOrderBy('code', 'asc')

View file

@ -25,18 +25,12 @@ use Sylius\Bundle\GridBundle\Builder\Filter\StringFilter;
use Sylius\Bundle\GridBundle\Builder\GridBuilderInterface;
use Sylius\Component\Grid\Attribute\AsGrid;
#[AsGrid(name: self::NAME)]
#[AsGrid(resourceClass: '%sylius.model.channel.class%', name: self::NAME)]
final class ChannelGrid implements ChannelGridInterface
{
public function __construct(
private readonly string $channelClass,
) {
}
public function __invoke(GridBuilderInterface $gridBuilder): void
{
$gridBuilder
->setDriverOption('class', $this->channelClass)
->setLimits([10, 25, 50])
->addOrderBy('nameAndDescription', 'asc')
->withFields(

View file

@ -19,18 +19,12 @@ use Sylius\Bundle\GridBundle\Builder\Filter\DateFilter;
use Sylius\Bundle\GridBundle\Builder\GridBuilderInterface;
use Sylius\Component\Grid\Attribute\AsGrid;
#[AsGrid(name: self::NAME)]
#[AsGrid(resourceClass: '%sylius.model.channel_pricing_log_entry.class%', name: self::NAME)]
final class ChannelPricingLogEntryGrid implements ChannelPricingLogEntryGridInterface
{
public function __construct(
private readonly string $channelPricingLogEntryClass,
) {
}
public function __invoke(GridBuilderInterface $gridBuilder): void
{
$gridBuilder
->setDriverOption('class', $this->channelPricingLogEntryClass)
->setRepositoryMethod('createByChannelPricingIdListQueryBuilder', [
'$channelPricingId',
])

View file

@ -22,18 +22,12 @@ use Sylius\Bundle\GridBundle\Builder\Filter\Filter;
use Sylius\Bundle\GridBundle\Builder\GridBuilderInterface;
use Sylius\Component\Grid\Attribute\AsGrid;
#[AsGrid(name: self::NAME)]
#[AsGrid(resourceClass: '%sylius.model.country.class%', name: self::NAME)]
final class CountryGrid implements CountryGridInterface
{
public function __construct(
private readonly string $countryClass,
) {
}
public function __invoke(GridBuilderInterface $gridBuilder): void
{
$gridBuilder
->setDriverOption('class', $this->countryClass)
->setLimits([10, 25, 50])
->addOrderBy('code', 'asc')

View file

@ -21,18 +21,12 @@ use Sylius\Bundle\GridBundle\Builder\Filter\StringFilter;
use Sylius\Bundle\GridBundle\Builder\GridBuilderInterface;
use Sylius\Component\Grid\Attribute\AsGrid;
#[AsGrid(name: self::NAME)]
#[AsGrid(resourceClass: '%sylius.model.currency.class%', name: self::NAME)]
final class CurrencyGrid implements CurrencyGridInterface
{
public function __construct(
private readonly string $currencyClass,
) {
}
public function __invoke(GridBuilderInterface $gridBuilder): void
{
$gridBuilder
->setDriverOption('class', $this->currencyClass)
->setLimits([10, 25, 50])
->addOrderBy('code', 'asc')
->withFields(

View file

@ -26,11 +26,10 @@ use Sylius\Bundle\GridBundle\Builder\Filter\StringFilter;
use Sylius\Bundle\GridBundle\Builder\GridBuilderInterface;
use Sylius\Component\Grid\Attribute\AsGrid;
#[AsGrid(name: self::NAME)]
#[AsGrid(resourceClass: '%sylius.model.customer.class%', name: self::NAME)]
final class CustomerGrid implements CustomerGridInterface
{
public function __construct(
private readonly string $customerClass,
private readonly string $customerGroupClass,
) {
}
@ -38,7 +37,6 @@ final class CustomerGrid implements CustomerGridInterface
public function __invoke(GridBuilderInterface $gridBuilder): void
{
$gridBuilder
->setDriverOption('class', $this->customerClass)
->setLimits([10, 25, 50])
->addOrderBy('createdAt', 'desc')
->withFields(

View file

@ -24,18 +24,12 @@ use Sylius\Bundle\GridBundle\Builder\Filter\StringFilter;
use Sylius\Bundle\GridBundle\Builder\GridBuilderInterface;
use Sylius\Component\Grid\Attribute\AsGrid;
#[AsGrid(name: self::NAME)]
#[AsGrid(resourceClass: '%sylius.model.customer_group.class%', name: self::NAME)]
final class CustomerGroupGrid implements CustomerGroupGridInterface
{
public function __construct(
private readonly string $customerGroupClass,
) {
}
public function __invoke(GridBuilderInterface $gridBuilder): void
{
$gridBuilder
->setDriverOption('class', $this->customerGroupClass)
->addOrderBy('name', 'asc')
->setLimits([10, 25, 50])
->withFields(

View file

@ -18,18 +18,12 @@ use Sylius\Bundle\GridBundle\Builder\Filter\Filter;
use Sylius\Bundle\GridBundle\Builder\GridBuilderInterface;
use Sylius\Component\Grid\Attribute\AsGrid;
#[AsGrid(name: self::NAME)]
#[AsGrid(resourceClass: '%sylius.model.order.class%', name: self::NAME)]
final class CustomerOrderGrid implements CustomerOrderGridInterface
{
public function __construct(
private readonly string $orderClass,
) {
}
public function __invoke(GridBuilderInterface $gridBuilder): void
{
$gridBuilder
->setDriverOption('class', $this->orderClass)
->setRepositoryMethod('createByCustomerIdCriteriaAwareQueryBuilder', [
'criteria' => null,
'customerId' => '$id',

View file

@ -24,11 +24,10 @@ use Sylius\Bundle\GridBundle\Builder\Filter\EntityFilter;
use Sylius\Bundle\GridBundle\Builder\GridBuilderInterface;
use Sylius\Component\Grid\Attribute\AsGrid;
#[AsGrid(name: self::NAME)]
#[AsGrid(resourceClass: '%sylius.model.exchange_rate.class%', name: self::NAME)]
final class ExchangeRateGrid implements ExchangeRateGridInterface
{
public function __construct(
private readonly string $exchangeRateClass,
private readonly string $currencyClass,
) {
}
@ -36,7 +35,6 @@ final class ExchangeRateGrid implements ExchangeRateGridInterface
public function __invoke(GridBuilderInterface $gridBuilder): void
{
$gridBuilder
->setDriverOption('class', $this->exchangeRateClass)
->setLimits([10, 25, 50])
->addOrderBy('id', 'desc')

View file

@ -21,11 +21,10 @@ use Sylius\Bundle\GridBundle\Builder\Filter\Filter;
use Sylius\Bundle\GridBundle\Builder\GridBuilderInterface;
use Sylius\Component\Grid\Attribute\AsGrid;
#[AsGrid(name: self::NAME)]
#[AsGrid(resourceClass: '%sylius.model.product_variant.class%', name: self::NAME)]
final class InventoryGrid implements InventoryGridInterface
{
public function __construct(
private readonly string $productVariantClass,
private readonly string $productClass,
) {
}
@ -33,7 +32,6 @@ final class InventoryGrid implements InventoryGridInterface
public function __invoke(GridBuilderInterface $gridBuilder): void
{
$gridBuilder
->setDriverOption('class', $this->productVariantClass)
->setLimits([10, 25, 50])
->addOrderBy('name', 'asc')
->setRepositoryMethod('createInventoryListQueryBuilder', [

View file

@ -22,18 +22,12 @@ use Sylius\Bundle\GridBundle\Builder\Filter\Filter;
use Sylius\Bundle\GridBundle\Builder\GridBuilderInterface;
use Sylius\Component\Grid\Attribute\AsGrid;
#[AsGrid(name: self::NAME)]
#[AsGrid(resourceClass: '%sylius.model.locale.class%', name: self::NAME)]
final class LocaleGrid implements LocaleGridInterface
{
public function __construct(
private readonly string $localeClass,
) {
}
public function __invoke(GridBuilderInterface $gridBuilder): void
{
$gridBuilder
->setDriverOption('class', $this->localeClass)
->setLimits([10, 25, 50])
->addOrderBy('code', 'asc')
->withFields(

View file

@ -23,11 +23,10 @@ use Sylius\Bundle\GridBundle\Builder\Filter\StringFilter;
use Sylius\Bundle\GridBundle\Builder\GridBuilderInterface;
use Sylius\Component\Grid\Attribute\AsGrid;
#[AsGrid(name: self::NAME)]
#[AsGrid(resourceClass: '%sylius.model.order.class%', name: self::NAME)]
final class OrderGrid implements OrderGridInterface
{
public function __construct(
private readonly string $orderClass,
private readonly string $channelClass,
private readonly string $customerClass,
private readonly string $productClass,
@ -39,7 +38,6 @@ final class OrderGrid implements OrderGridInterface
public function __invoke(GridBuilderInterface $gridBuilder): void
{
$gridBuilder
->setDriverOption('class', $this->orderClass)
->setLimits([10, 25, 50])
->setRepositoryMethod(
'createCriteriaAwareSearchListQueryBuilder',

View file

@ -20,11 +20,10 @@ use Sylius\Bundle\GridBundle\Builder\Filter\Filter;
use Sylius\Bundle\GridBundle\Builder\GridBuilderInterface;
use Sylius\Component\Grid\Attribute\AsGrid;
#[AsGrid(name: self::NAME)]
#[AsGrid(resourceClass: '%sylius.model.payment.class%', name: self::NAME)]
final class PaymentGrid implements PaymentGridInterface
{
public function __construct(
private readonly string $paymentClass,
private readonly string $channelClass,
) {
}
@ -32,7 +31,6 @@ final class PaymentGrid implements PaymentGridInterface
public function __invoke(GridBuilderInterface $gridBuilder): void
{
$gridBuilder
->setDriverOption('class', $this->paymentClass)
->setRepositoryMethod('createListQueryBuilder')
->addOrderBy('createdAt', 'desc')
->setLimits([10, 25, 50])

View file

@ -25,18 +25,12 @@ use Sylius\Bundle\GridBundle\Builder\Filter\StringFilter;
use Sylius\Bundle\GridBundle\Builder\GridBuilderInterface;
use Sylius\Component\Grid\Attribute\AsGrid;
#[AsGrid(name: self::NAME)]
#[AsGrid(resourceClass: '%sylius.model.payment_method.class%', name: self::NAME)]
final class PaymentMethodGrid implements PaymentMethodGridInterface
{
public function __construct(
private readonly string $paymentMethodClass,
) {
}
public function __invoke(GridBuilderInterface $gridBuilder): void
{
$gridBuilder
->setDriverOption('class', $this->paymentMethodClass)
->setRepositoryMethod('createListQueryBuilder', [
'expr:service(\'sylius.context.locale\').getLocaleCode()',
])

View file

@ -23,18 +23,16 @@ use Sylius\Bundle\GridBundle\Builder\GridBuilderInterface;
use Sylius\Component\Grid\Attribute\AsGrid;
use Sylius\Component\Payment\Model\PaymentRequestInterface;
#[AsGrid(name: self::NAME)]
#[AsGrid(resourceClass: '%sylius.model.payment_request.class%', name: self::NAME)]
final class PaymentRequestGrid implements PaymentRequestGridInterface
{
public function __construct(
private readonly string $paymentRequestClass,
private readonly string $paymentMethodClass,
) {
}
public function __invoke(GridBuilderInterface $gridBuilder): void
{
$gridBuilder->setDriverOption('class', $this->paymentRequestClass);
$gridBuilder->setRepositoryMethod('createQueryBuilderForPayment', [
'paymentId' => '$paymentId',
]);

View file

@ -24,18 +24,12 @@ use Sylius\Bundle\GridBundle\Builder\Filter\Filter;
use Sylius\Bundle\GridBundle\Builder\GridBuilderInterface;
use Sylius\Component\Grid\Attribute\AsGrid;
#[AsGrid(name: self::NAME)]
#[AsGrid(resourceClass: '%sylius.model.product_association_type.class%', name: self::NAME)]
final class ProductAssociationTypeGrid implements ProductAssociationTypeGridInterface
{
public function __construct(
private readonly string $productAssociationTypeClass,
) {
}
public function __invoke(GridBuilderInterface $gridBuilder): void
{
$gridBuilder
->setDriverOption('class', $this->productAssociationTypeClass)
->setRepositoryMethod('createListQueryBuilder', [
'expr:service(\'sylius.context.locale\').getLocaleCode()',
])

View file

@ -35,18 +35,12 @@ use Sylius\Component\Attribute\AttributeType\TextareaAttributeType;
use Sylius\Component\Attribute\AttributeType\TextAttributeType;
use Sylius\Component\Grid\Attribute\AsGrid;
#[AsGrid(name: self::NAME)]
#[AsGrid(resourceClass: '%sylius.model.product_attribute.class%', name: self::NAME)]
final class ProductAttributeGrid implements ProductAttributeGridInterface
{
public function __construct(
private readonly string $productAttributeClass,
) {
}
public function __invoke(GridBuilderInterface $gridBuilder): void
{
$gridBuilder
->setDriverOption('class', $this->productAttributeClass)
->setRepositoryMethod('createListQueryBuilder', [
"expr:service('sylius.context.locale').getLocaleCode()",
])

View file

@ -28,7 +28,7 @@ use Sylius\Bundle\GridBundle\Builder\Filter\StringFilter;
use Sylius\Bundle\GridBundle\Builder\GridBuilderInterface;
use Sylius\Component\Grid\Attribute\AsGrid;
#[AsGrid(name: self::NAME)]
#[AsGrid(resourceClass: '%sylius.model.product.class%', name: self::NAME)]
final class ProductGrid implements ProductGridInterface
{
public function __construct(
@ -41,7 +41,6 @@ final class ProductGrid implements ProductGridInterface
public function __invoke(GridBuilderInterface $gridBuilder): void
{
$gridBuilder
->setDriverOption('class', $this->productClass)
->setRepositoryMethod('createListQueryBuilder', [
'expr:service(\'sylius.context.locale\').getLocaleCode()',
])

View file

@ -24,18 +24,12 @@ use Sylius\Bundle\GridBundle\Builder\Filter\StringFilter;
use Sylius\Bundle\GridBundle\Builder\GridBuilderInterface;
use Sylius\Component\Grid\Attribute\AsGrid;
#[AsGrid(name: self::NAME)]
#[AsGrid(resourceClass: '%sylius.model.product_option.class%', name: self::NAME)]
final class ProductOptionGrid implements ProductOptionGridInterface
{
public function __construct(
private readonly string $productOptionClass,
) {
}
public function __invoke(GridBuilderInterface $gridBuilder): void
{
$gridBuilder
->setDriverOption('class', $this->productOptionClass)
->setLimits([10, 25, 50])
->setRepositoryMethod('createListQueryBuilder', [
'expr:service(\'sylius.context.locale\').getLocaleCode()',

View file

@ -25,11 +25,10 @@ use Sylius\Bundle\GridBundle\Builder\Filter\SelectFilter;
use Sylius\Bundle\GridBundle\Builder\GridBuilderInterface;
use Sylius\Component\Grid\Attribute\AsGrid;
#[AsGrid(name: self::NAME)]
#[AsGrid(resourceClass: '%sylius.model.product_review.class%', name: self::NAME)]
final class ProductReviewGrid implements ProductReviewGridInterface
{
public function __construct(
private readonly string $productReviewClass,
private readonly string $productClass,
) {
}
@ -37,7 +36,6 @@ final class ProductReviewGrid implements ProductReviewGridInterface
public function __invoke(GridBuilderInterface $gridBuilder): void
{
$gridBuilder
->setDriverOption('class', $this->productReviewClass)
->setLimits([10, 25, 50])
->addOrderBy('date', 'desc')
->withFields(

View file

@ -26,11 +26,10 @@ use Sylius\Bundle\GridBundle\Builder\Filter\StringFilter;
use Sylius\Bundle\GridBundle\Builder\GridBuilderInterface;
use Sylius\Component\Grid\Attribute\AsGrid;
#[AsGrid(name: self::NAME)]
#[AsGrid(resourceClass: '%sylius.model.product_taxon.class%', name: self::NAME)]
final class ProductTaxonGrid implements ProductTaxonGridInterface
{
public function __construct(
private readonly string $productTaxonClass,
private readonly string $channelClass,
) {
}
@ -38,7 +37,6 @@ final class ProductTaxonGrid implements ProductTaxonGridInterface
public function __invoke(GridBuilderInterface $gridBuilder): void
{
$gridBuilder
->setDriverOption('class', $this->productTaxonClass)
->addOrderBy('position', 'asc')
->setLimits([10, 25, 50])
->setRepositoryMethod('createListQueryBuilderForTaxon', [

View file

@ -27,18 +27,12 @@ use Sylius\Bundle\GridBundle\Builder\Filter\Filter;
use Sylius\Bundle\GridBundle\Builder\GridBuilderInterface;
use Sylius\Component\Grid\Attribute\AsGrid;
#[AsGrid(name: self::NAME)]
#[AsGrid(resourceClass: '%sylius.model.product_variant.class%', name: self::NAME)]
final class ProductVariantGrid implements ProductVariantGridInterface
{
public function __construct(
private readonly string $productVariantClass,
) {
}
public function __invoke(GridBuilderInterface $gridBuilder): void
{
$gridBuilder
->setDriverOption('class', $this->productVariantClass)
->setLimits([10, 25, 50])
->setRepositoryMethod('createQueryBuilderByProductId', [
'expr:service(\'sylius.context.locale\').getLocaleCode()',

View file

@ -23,11 +23,10 @@ use Sylius\Bundle\GridBundle\Builder\Filter\StringFilter;
use Sylius\Bundle\GridBundle\Builder\GridBuilderInterface;
use Sylius\Component\Grid\Attribute\AsGrid;
#[AsGrid(name: self::NAME)]
#[AsGrid(resourceClass: '%sylius.model.product_variant.class%', name: self::NAME)]
final class ProductVariantWithCatalogPromotionGrid implements ProductVariantWithCatalogPromotionGridInterface
{
public function __construct(
private readonly string $productVariantClass,
private readonly string $locale,
) {
}
@ -35,7 +34,6 @@ final class ProductVariantWithCatalogPromotionGrid implements ProductVariantWith
public function __invoke(GridBuilderInterface $gridBuilder): void
{
$gridBuilder
->setDriverOption('class', $this->productVariantClass)
->setLimits([10, 25, 50])
->setRepositoryMethod('createCatalogPromotionListQueryBuilder', [
$this->locale,

View file

@ -27,18 +27,12 @@ use Sylius\Bundle\GridBundle\Builder\Filter\Filter;
use Sylius\Bundle\GridBundle\Builder\GridBuilderInterface;
use Sylius\Component\Grid\Attribute\AsGrid;
#[AsGrid(name: self::NAME)]
#[AsGrid(resourceClass: '%sylius.model.promotion_coupon.class%', name: self::NAME)]
final class PromotionCouponGrid implements PromotionCouponGridInterface
{
public function __construct(
private readonly string $promotionCouponClass,
) {
}
public function __invoke(GridBuilderInterface $gridBuilder): void
{
$gridBuilder
->setDriverOption('class', $this->promotionCouponClass)
->setLimits([10, 25, 50])
->orderBy('used', 'desc')
->setRepositoryMethod('createQueryBuilderByPromotionId', [

View file

@ -28,18 +28,12 @@ use Sylius\Bundle\GridBundle\Builder\Filter\StringFilter;
use Sylius\Bundle\GridBundle\Builder\GridBuilderInterface;
use Sylius\Component\Grid\Attribute\AsGrid;
#[AsGrid(name: self::NAME)]
#[AsGrid(resourceClass: '%sylius.model.promotion.class%', name: self::NAME)]
final class PromotionGrid implements PromotionGridInterface
{
public function __construct(
private readonly string $promotionClass,
) {
}
public function __invoke(GridBuilderInterface $gridBuilder): void
{
$gridBuilder
->setDriverOption('class', $this->promotionClass)
->setLimits([10, 25, 50])
->addOrderBy('priority', 'desc')
->withFields(

View file

@ -22,11 +22,10 @@ use Sylius\Bundle\GridBundle\Builder\Filter\SelectFilter;
use Sylius\Bundle\GridBundle\Builder\GridBuilderInterface;
use Sylius\Component\Grid\Attribute\AsGrid;
#[AsGrid(name: self::NAME)]
#[AsGrid(resourceClass: '%sylius.model.shipment.class%', name: self::NAME)]
final class ShipmentGrid implements ShipmentGridInterface
{
public function __construct(
private readonly string $shipmentClass,
private readonly string $channelClass,
private readonly string $shippingMethodClass,
) {
@ -35,7 +34,6 @@ final class ShipmentGrid implements ShipmentGridInterface
public function __invoke(GridBuilderInterface $gridBuilder): void
{
$gridBuilder
->setDriverOption('class', $this->shipmentClass)
->setLimits([10, 25, 50])
->setRepositoryMethod('createListQueryBuilder')
->addOrderBy('createdAt', 'desc')

View file

@ -24,18 +24,12 @@ use Sylius\Bundle\GridBundle\Builder\Filter\Filter;
use Sylius\Bundle\GridBundle\Builder\GridBuilderInterface;
use Sylius\Component\Grid\Attribute\AsGrid;
#[AsGrid(name: self::NAME)]
#[AsGrid(resourceClass: '%sylius.model.shipping_category.class%', name: self::NAME)]
final class ShippingCategoryGrid implements ShippingCategoryGridInterface
{
public function __construct(
private readonly string $shippingCategoryClass,
) {
}
public function __invoke(GridBuilderInterface $gridBuilder): void
{
$gridBuilder
->setDriverOption('class', $this->shippingCategoryClass)
->setLimits([10, 25, 50])
->setRepositoryMethod('createListQueryBuilder')
->withFields(

View file

@ -28,18 +28,12 @@ use Sylius\Bundle\GridBundle\Builder\Filter\StringFilter;
use Sylius\Bundle\GridBundle\Builder\GridBuilderInterface;
use Sylius\Component\Grid\Attribute\AsGrid;
#[AsGrid(name: self::NAME)]
#[AsGrid(resourceClass: '%sylius.model.shipping_method.class%', name: self::NAME)]
final class ShippingMethodGrid implements ShippingMethodGridInterface
{
public function __construct(
private readonly string $shippingMethodClass,
) {
}
public function __invoke(GridBuilderInterface $gridBuilder): void
{
$gridBuilder
->setDriverOption('class', $this->shippingMethodClass)
->setLimits([10, 25, 50])
->setRepositoryMethod('createListQueryBuilder', [
'expr:service(\'sylius.context.locale\').getLocaleCode()',

View file

@ -24,18 +24,12 @@ use Sylius\Bundle\GridBundle\Builder\Filter\StringFilter;
use Sylius\Bundle\GridBundle\Builder\GridBuilderInterface;
use Sylius\Component\Grid\Attribute\AsGrid;
#[AsGrid(name: self::NAME)]
#[AsGrid(resourceClass: '%sylius.model.tax_category.class%', name: self::NAME)]
final class TaxCategoryGrid implements TaxCategoryGridInterface
{
public function __construct(
private readonly string $taxCategoryClass,
) {
}
public function __invoke(GridBuilderInterface $gridBuilder): void
{
$gridBuilder
->setDriverOption('class', $this->taxCategoryClass)
->setLimits([10, 25, 50])
->addOrderBy('nameAndDescription', 'asc')

View file

@ -27,18 +27,12 @@ use Sylius\Bundle\GridBundle\Builder\Filter\StringFilter;
use Sylius\Bundle\GridBundle\Builder\GridBuilderInterface;
use Sylius\Component\Grid\Attribute\AsGrid;
#[AsGrid(name: self::NAME)]
#[AsGrid(resourceClass: '%sylius.model.tax_rate.class%', name: self::NAME)]
final class TaxRateGrid implements TaxRateGridInterface
{
public function __construct(
private readonly string $taxRateClass,
) {
}
public function __invoke(GridBuilderInterface $gridBuilder): void
{
$gridBuilder
->setDriverOption('class', $this->taxRateClass)
->setLimits([10, 25, 50])
->addOrderBy('name', 'asc')

View file

@ -17,18 +17,12 @@ use Sylius\Bundle\GridBundle\Builder\Filter\StringFilter;
use Sylius\Bundle\GridBundle\Builder\GridBuilderInterface;
use Sylius\Component\Grid\Attribute\AsGrid;
#[AsGrid(name: self::NAME)]
#[AsGrid(resourceClass: '%sylius.model.taxon.class%', name: self::NAME)]
final class TaxonGrid implements TaxonGridInterface
{
public function __construct(
private readonly string $taxonClass,
) {
}
public function __invoke(GridBuilderInterface $gridBuilder): void
{
$gridBuilder
->setDriverOption('class', $this->taxonClass)
->setRepositoryMethod('createListQueryBuilder')
->setLimits([10, 25, 50])

View file

@ -24,18 +24,12 @@ use Sylius\Bundle\GridBundle\Builder\Filter\StringFilter;
use Sylius\Bundle\GridBundle\Builder\GridBuilderInterface;
use Sylius\Component\Grid\Attribute\AsGrid;
#[AsGrid(name: self::NAME)]
#[AsGrid(resourceClass: '%sylius.model.zone.class%', name: self::NAME)]
final class ZoneGrid implements ZoneGridInterface
{
public function __construct(
private readonly string $resourceClass,
) {
}
public function __invoke(GridBuilderInterface $gridBuilder): void
{
$gridBuilder
->setDriverOption('class', $this->resourceClass)
->setLimits([10, 25, 50])
->addOrderBy('priority', 'desc')

View file

@ -97,9 +97,6 @@ return static function (ContainerConfigurator $container) {
;
$services->set('sylius_admin.grid.admin_user', AdminUserGrid::class)
->args([
'%sylius.model.admin_user.class%',
])
->tag('sylius.invokable_grid')
;
@ -107,7 +104,6 @@ return static function (ContainerConfigurator $container) {
$services->set('sylius_admin.grid.catalog_promotion', CatalogPromotionGrid::class)
->args([
'%sylius.model.catalog_promotion.class%',
'%sylius.model.channel.class%',
])
->tag('sylius.invokable_grid')
@ -115,24 +111,17 @@ return static function (ContainerConfigurator $container) {
$services->alias(CatalogPromotionGridInterface::class, 'sylius_admin.grid.catalog_promotion');
$services->set('sylius_admin.grid.channel', ChannelGrid::class)
->args([
'%sylius.model.channel.class%',
])
->tag('sylius.invokable_grid')
;
$services->alias(ChannelGridInterface::class, 'sylius_admin.grid.channel');
$services->set('sylius_admin.grid.currency', CurrencyGrid::class)
->args([
'%sylius.model.currency.class%',
])
->tag('sylius.invokable_grid')
;
$services->alias(CurrencyGridInterface::class, 'sylius_admin.grid.currency');
$services->set('sylius_admin.grid.customer', CustomerGrid::class)
->args([
'%sylius.model.customer.class%',
'%sylius.model.customer_group.class%',
])
->tag('sylius.invokable_grid')
@ -140,24 +129,17 @@ return static function (ContainerConfigurator $container) {
$services->alias(CustomerGridInterface::class, 'sylius_admin.grid.customer');
$services->set('sylius_admin.grid.customer_group', CustomerGroupGrid::class)
->args([
'%sylius.model.customer_group.class%',
])
->tag('sylius.invokable_grid')
;
$services->alias(CustomerGroupGridInterface::class, 'sylius_admin.grid.customer_group');
$services->set('sylius_admin.grid.locale', LocaleGrid::class)
->args([
'%sylius.model.locale.class%',
])
->tag('sylius.invokable_grid')
;
$services->alias(LocaleGridInterface::class, 'sylius_admin.grid.locale');
$services->set('sylius_admin.grid.inventory', InventoryGrid::class)
->args([
'%sylius.model.product_variant.class%',
'%sylius.model.product.class%',
])
->tag('sylius.invokable_grid')
@ -165,32 +147,22 @@ return static function (ContainerConfigurator $container) {
$services->alias(InventoryGridInterface::class, 'sylius_admin.grid.inventory');
$services->set('sylius_admin.grid.payment_method', PaymentMethodGrid::class)
->args([
'%sylius.model.payment_method.class%',
])
->tag('sylius.invokable_grid')
;
$services->alias(PaymentMethodGridInterface::class, 'sylius_admin.grid.payment_method');
$services->set('sylius_admin.grid.product_association_type', ProductAssociationTypeGrid::class)
->args([
'%sylius.model.product_association_type.class%',
])
->tag('sylius.invokable_grid')
;
$services->alias(ProductAssociationTypeGridInterface::class, 'sylius_admin.grid.product_association_type');
$services->set('syllabus_admin.grid.taxon', TaxonGrid::class)
->args([
'%sylius.model.taxon.class%',
])
->tag('sylius.invokable_grid')
;
$services->alias(TaxonGridInterface::class, 'sylius_admin.grid.taxon');
$services->set('sylius_admin.grid.product_taxon', ProductTaxonGrid::class)
->args([
'%sylius.model.product_taxon.class%',
'%sylius.model.channel.class%',
])
->tag('sylius.invokable_grid')
@ -208,24 +180,17 @@ return static function (ContainerConfigurator $container) {
$services->alias(ProductGridInterface::class, 'sylius_admin.grid.product');
$services->set('sylius_admin.grid.product_attribute', ProductAttributeGrid::class)
->args([
'%sylius.model.product_attribute.class%',
])
->tag('sylius.invokable_grid')
;
$services->alias(ProductAttributeGridInterface::class, 'sylius_admin.grid.product_attribute');
$services->set('sylius_admin.grid.product_variant', ProductVariantGrid::class)
->args([
'%sylius.model.product_variant.class%',
])
->tag('sylius.invokable_grid')
;
$services->alias(ProductVariantGridInterface::class, 'sylius_admin.grid.product_variant');
$services->set('sylius_admin.grid.product_variant_with_catalog_promotion', ProductVariantWithCatalogPromotionGrid::class)
->args([
'%sylius.model.product_variant.class%',
'%locale%',
])
->tag('sylius.invokable_grid')
@ -233,16 +198,12 @@ return static function (ContainerConfigurator $container) {
$services->alias(ProductVariantWithCatalogPromotionGridInterface::class, 'sylius_admin.grid.product_variant_with_catalog_promotion');
$services->set('sylius_admin.grid.country', CountryGrid::class)
->args([
'%sylius.model.country.class%',
])
->tag('sylius.invokable_grid')
;
$services->alias(CountryGridInterface::class, 'sylius_admin.grid.country');
$services->set('sylius_admin.grid.shipment', ShipmentGrid::class)
->args([
'%sylius.model.shipment.class%',
'%sylius.model.channel.class%',
'%sylius.model.shipping_method.class%',
])
@ -251,57 +212,36 @@ return static function (ContainerConfigurator $container) {
$services->alias(ShipmentGridInterface::class, 'sylius_admin.grid.shipment');
$services->set('sylius_admin.grid.shipping_category', ShippingCategoryGrid::class)
->args([
'%sylius.model.shipping_category.class%',
])
->tag('sylius.invokable_grid')
;
$services->alias(ShippingCategoryGridInterface::class, 'sylius_admin.grid.shipping_category');
$services->set('sylius_admin.grid.shipping_method', ShippingMethodGrid::class)
->args([
'%sylius.model.shipping_method.class%',
])
->tag('sylius.invokable_grid')
;
$services->alias(ShippingMethodGridInterface::class, 'sylius_admin.grid.shipping_method');
$services->set('sylius_admin.grid.tax_category', TaxCategoryGrid::class)
->args([
'%sylius.model.tax_category.class%',
])
->tag('sylius.invokable_grid')
;
$services->alias(TaxCategoryGridInterface::class, 'sylius_admin.grid.tax_category');
$services->set('sylius_admin.grid.tax_rate', TaxRateGrid::class)
->args([
'%sylius.model.tax_rate.class%',
])
->tag('sylius.invokable_grid')
;
$services->alias(TaxRateGridInterface::class, 'sylius_admin.grid.tax_rate');
$services->set('sylius_admin.grid.promotion_coupon', PromotionCouponGrid::class)
->args([
'%sylius.model.promotion_coupon.class%',
])
->tag('sylius.invokable_grid')
;
$services->alias(PromotionCouponGridInterface::class, 'sylius_admin.grid.promotion_coupon');
$services->set('sylius_admin.grid.promotion', PromotionGrid::class)
->args([
'%sylius.model.promotion.class%',
])
->tag('sylius.invokable_grid')
;
$services->alias(PromotionGridInterface::class, 'sylius_admin.grid.promotion');
$services->set('sylius_admin.grid.zone', ZoneGrid::class)
->args([
'%sylius.model.zone.class%',
])
->tag('sylius.invokable_grid')
;
@ -309,7 +249,6 @@ return static function (ContainerConfigurator $container) {
$services->set('sylius_admin.grid.payment', PaymentGrid::class)
->args([
'%sylius.model.payment.class%',
'%sylius.model.channel.class%',
])
->tag('sylius.invokable_grid')
@ -317,16 +256,12 @@ return static function (ContainerConfigurator $container) {
$services->alias(PaymentGridInterface::class, 'sylius_admin.grid.payment');
$services->set('sylius_admin.grid.customer_order', CustomerOrderGrid::class)
->args([
'%sylius.model.order.class%',
])
->tag('sylius.invokable_grid')
;
$services->alias(CustomerOrderGridInterface::class, 'sylius_admin.grid.customer_order');
$services->set('sylius_admin.grid.order', OrderGrid::class)
->args([
'%sylius.model.order.class%',
'%sylius.model.channel.class%',
'%sylius.model.customer.class%',
'%sylius.model.product.class%',
@ -340,7 +275,6 @@ return static function (ContainerConfigurator $container) {
$services->set('sylius_admin.grid.exchange_rate', ExchangeRateGrid::class)
->args([
'%sylius.model.exchange_rate.class%',
'%sylius.model.currency.class%',
])
->tag('sylius.invokable_grid')
@ -348,16 +282,12 @@ return static function (ContainerConfigurator $container) {
$services->alias(ExchangeRateGridInterface::class, 'sylius_admin.grid.exchange_rate');
$services->set('sylius_admin.grid.product_option', ProductOptionGrid::class)
->args([
'%sylius.model.product_option.class%',
])
->tag('sylius.invokable_grid')
;
$services->alias(ProductOptionGridInterface::class, 'sylius_admin.grid.product_option');
$services->set('sylius_admin.grid.product_review', ProductReviewGrid::class)
->args([
'%sylius.model.product_review.class%',
'%sylius.model.product.class%',
])
->tag('sylius.invokable_grid')
@ -365,16 +295,12 @@ return static function (ContainerConfigurator $container) {
$services->alias(ProductReviewGridInterface::class, 'sylius_admin.grid.product_review');
$services->set('sylius_admin.grid.channel_pricing_log_entry', ChannelPricingLogEntryGrid::class)
->args([
'%sylius.model.channel_pricing_log_entry.class%',
])
->tag('sylius.invokable_grid')
;
$services->alias(ChannelPricingLogEntryGridInterface::class, 'sylius_admin.grid.channel_pricing_log_entry');
$services->set('sylius_admin.grid.payment_request', PaymentRequestGrid::class)
->args([
'%sylius.model.payment_request.class%',
'%sylius.model.payment_method.class%',
])
->tag('sylius.invokable_grid')

View file

@ -20,14 +20,9 @@ use Sylius\Bundle\GridBundle\Builder\Field\TwigField;
use Sylius\Bundle\GridBundle\Builder\GridBuilderInterface;
use Sylius\Component\Grid\Attribute\AsGrid;
#[AsGrid(name: self::NAME)]
#[AsGrid(resourceClass: '%sylius.model.order.class%', name: self::NAME)]
final class OrderGrid implements OrderGridInterface
{
public function __construct(
private readonly string $orderClass,
) {
}
public function __invoke(GridBuilderInterface $gridBuilder): void
{
$gridBuilder
@ -35,7 +30,6 @@ final class OrderGrid implements OrderGridInterface
"expr:service('sylius.context.customer').getCustomer().getId()",
"expr:service('sylius.context.channel').getChannel().getId()",
])
->setDriverOption('class', $this->orderClass)
->orderBy('checkoutCompletedAt', 'desc')
->setLimits([10, 25, 50])
->withFields(

View file

@ -20,14 +20,9 @@ use Sylius\Bundle\GridBundle\Builder\Filter\Filter;
use Sylius\Bundle\GridBundle\Builder\GridBuilderInterface;
use Sylius\Component\Grid\Attribute\AsGrid;
#[AsGrid(name: self::NAME)]
#[AsGrid(resourceClass: '%sylius.model.product.class%', name: self::NAME)]
final class ProductGrid implements ProductGridInterface
{
public function __construct(
private readonly string $productClass,
) {
}
public function __invoke(GridBuilderInterface $gridBuilder): void
{
$gridBuilder
@ -38,7 +33,6 @@ final class ProductGrid implements ProductGridInterface
'sorting' => "expr:service('request_stack').getCurrentRequest().query.all('sorting')",
'includeAllDescendants' => "expr:parameter('sylius_shop.product_grid.include_all_descendants')",
])
->setDriverOption('class', $this->productClass)
->orderBy('position', 'asc')
->setLimits([
9,

View file

@ -17,18 +17,12 @@ return static function (ContainerConfigurator $container) {
$services = $container->services();
$services->set('sylius_shop.grid.account.order', \Sylius\Bundle\ShopBundle\Grid\Account\OrderGrid::class)
->args([
'%sylius.model.order.class%',
])
->tag('sylius.invokable_grid')
;
$services->alias(\Sylius\Bundle\ShopBundle\Grid\Account\OrderGridInterface::class, 'sylius_shop.grid.account.order');
$services->set('sylius_shop.grid.product', \Sylius\Bundle\ShopBundle\Grid\ProductGrid::class)
->args([
'%sylius.model.product.class%',
])
->tag('sylius.invokable_grid')
;