alexandrebulete / ddd-sylius-bundle
Sylius Stack Bundle for DDD Foundation - Admin UI, Grid, Resource integration
Package info
github.com/AlexandreBulete/ddd-sylius-bundle
Type:symfony-bundle
pkg:composer/alexandrebulete/ddd-sylius-bundle
1.0.1
2026-04-30 09:27 UTC
Requires
- php: ^8.2
- alexandrebulete/ddd-symfony-bundle: ^1.1
- knplabs/knp-menu-bundle: ^3.0
- sylius/admin-ui: ^0.10
- sylius/bootstrap-admin-ui: ^0.10
- sylius/grid-bundle: ^1.13
- sylius/resource-bundle: ^1.11
Requires (Dev)
None
Suggests
None
Provides
None
Conflicts
None
Replaces
None
README
Sylius Stack Bundle for DDD Foundation. Provides Admin UI menu builder, Grid utilities, and Resource integration.
Installation
composer require alexandrebulete/ddd-sylius-bundle
Configuration
Add the bundle to your config/bundles.php:
return [ // ... AlexandreBulete\DddSyliusBundle\DddSyliusBundle::class => ['all' => true], ];
Structure
src/
├── DddSyliusBundle.php
├── Admin/
│ └── Menu/
│ ├── MenuBuilder.php
│ └── MenuContributorInterface.php
├── Grid/
│ └── GridPageResolver.php
└── Resources/
└── config/
├── services.php
└── sylius_resource.yaml
Features
Menu Builder
The bundle provides a modular menu builder for Sylius Admin UI. Each bounded context can contribute menu items.
Create a Menu Contributor
use AlexandreBulete\DddSyliusBundle\Admin\Menu\MenuContributorInterface; use Knp\Menu\ItemInterface; use Symfony\Component\DependencyInjection\Attribute\AutoconfigureTag; #[AutoconfigureTag('app.menu_contributor')] final readonly class PostMenuContributor implements MenuContributorInterface { public function contribute(ItemInterface $menu): void { $menu ->addChild('posts', [ 'route' => 'app_admin_post_index', ]) ->setLabel('Posts') ->setLabelAttribute('icon', 'tabler:article'); } }
Grid Page Resolver
Utility for resolving pagination parameters from Grid and Request:
use AlexandreBulete\DddSyliusBundle\Grid\GridPageResolver; $page = GridPageResolver::getCurrentPage($grid, $parameters); $itemsPerPage = GridPageResolver::getItemsPerPage($grid, $parameters);
Sylius Resource Configuration
Configure resource mapping for your bounded contexts:
# config/packages/sylius_resource.yaml sylius_resource: mapping: paths: - '%kernel.project_dir%/src/*/Infrastructure/Sylius/Resource'
Example: Full Bounded Context Setup
src/Post/
├── Domain/
│ └── Model/Post.php
├── Infrastructure/
│ ├── Sylius/
│ │ ├── Resource/
│ │ │ └── PostResource.php
│ │ └── Grid/
│ │ └── PostGrid.php
│ └── Symfony/
│ └── Menu/
│ └── PostMenuContributor.php