agence-adeliom / sylius-happy-cms-plugin
A simple lightweight CMS bundle for Symfony Sylius
Package info
github.com/agence-adeliom/sylius-happy-cms-plugin
Type:sylius-plugin
pkg:composer/agence-adeliom/sylius-happy-cms-plugin
Requires
- php: ~8.3|~8.4|~8.5
- ext-exif: *
- ext-intl: *
- ext-json: *
- agence-adeliom/sylius-easy-crud-plugin: ^v2.0.4
- emileperron/tinymce-bundle: ^3.0
- illuminate/support: ^v11.33.2
- james-heinrich/getid3: ^1.9
- league/flysystem-bundle: ^2.4.0 || ^3.0
- liip/imagine-bundle: ^2.8
- maennchen/zipstream-php: ^2.1.0
- presta/sitemap-bundle: ^v4.1.1
- stof/doctrine-extensions-bundle: ^1.6
- sylius/sylius: ^2.0.0 || ^2.1.0 || ^v2.2.0
- symfony-cmf/routing-bundle: ^3.0
- symfony/filesystem: ^7.4 || ^8.0
- symfony/options-resolver: ^7.4 || ^8.0
- symfony/property-access: ^7.4 || ^8.0
Requires (Dev)
- behat/behat: ^3.16
- dbrekelmans/bdi: ^1.4
- dmore/behat-chrome-extension: ^1.4
- dmore/chrome-mink-driver: ^2.9
- friends-of-behat/mink: ^1.11
- friends-of-behat/mink-browserkit-driver: ^1.6
- friends-of-behat/mink-debug-extension: ^2.1
- friends-of-behat/mink-extension: ^2.7
- friends-of-behat/page-object-extension: ^0.3
- friends-of-behat/suite-settings-extension: ^1.1
- friends-of-behat/symfony-extension: ^2.6
- friends-of-behat/variadic-extension: ^1.6
- nyholm/psr7: ^1.8
- phpstan/phpstan: ^1.12
- phpstan/phpstan-doctrine: ^1.3
- phpstan/phpstan-webmozart-assert: ^1.2
- phpunit/phpunit: ^10.5
- sylius-labs/coding-standard: ^4.4
- sylius-labs/suite-tags-extension: ~0.2
- sylius/sylius-rector: ^2.0
- sylius/test-application: ^v2.0.0-ALPHA.7 || ^v2.1.0-ALPHA.6 || ^v2.2.0-ALPHA.1
- symfony/ai-bundle: ^0.3.2
- symfony/ai-chat: ^0.3.0
- symfony/ai-open-ai-platform: ^0.3.0
- symfony/browser-kit: ^6.4 || ^7.4
- symfony/debug-bundle: ^6.4 || ^7.4
- symfony/dotenv: ^6.4 || ^7.4
- symfony/http-client: ^6.4 || ^7.4
- symfony/intl: ^6.4 || ^7.4
- symfony/maker-bundle: ^1.65
- symfony/runtime: ^6.4 || ^7.4
- symfony/web-profiler-bundle: ^6.4 || ^7.4
- symfony/webpack-encore-bundle: ^1.12 || ^2.0
- 2.1.x-dev
- v2.1.1
- v2.1.0
- 2.0.x-dev
- v2.0.1
- v2.0.0
- v2.0.0-ALPHA-1
- 1.x-dev
- v1.14.12
- v1.14.11
- v1.14.10
- v1.14.9
- v1.14.8
- v1.14.7
- v1.14.6
- v1.14.5
- v1.14.4
- v1.14.3
- v1.14.2
- v1.14.1
- v1.14.0
- v1.13.37
- v1.13.36
- v1.13.35
- v1.13.34
- 1.13.33
- 1.13.32
- 1.13.31
- 1.13.30
- v1.13.29
- v1.13.28
- v1.13.27
- v1.13.26
- v1.13.25
- v1.13.24
- v1.13.23
- v1.13.22
- v1.13.21
- v1.13.20
- v1.13.19
- v1.13.18
- v1.13.17
- v1.13.16
- v1.13.15
- v1.13.14
- v1.13.13
- v1.13.12
- v1.13.11
- v1.13.10
- v1.13.9
- v1.13.8
- v1.13.7
- v1.13.6
- v1.13.5
- v1.13.4
- v1.13.3
- v1.13.2
- v1.13.1
- v1.13.0
- 0.x-dev
- dev-70-tree-and-live-component-are-not-compiled
- dev-dependabot/composer/0.x/symplify/easy-coding-standard-tw-13.0
- dev-dependabot/composer/0.x/presta/sitemap-bundle-tw-4.2
- dev-dependabot/npm_and_yarn/0.x/tailwindcss-4.1.17
- dev-dependabot/npm_and_yarn/0.x/idb-keyval-6.2.2
- dev-dependabot/npm_and_yarn/babel/runtime-7.28.4
- dev-dependabot/npm_and_yarn/brace-expansion-1.1.12
- dev-dependabot/npm_and_yarn/multi-96c788614a
- dev-dependabot/npm_and_yarn/0.x/postcss-loader-8.2.0
- dev-dependabot/npm_and_yarn/http-proxy-middleware-2.0.9
- dev-dependabot/npm_and_yarn/multi-c31e46d6cf
- dev-dependabot/npm_and_yarn/tmp-0.2.5
- dev-dependabot/npm_and_yarn/axios-0.30.2
- dev-dependabot/npm_and_yarn/0.x/eslint-9.39.1
- dev-dependabot/github_actions/0.x/actions/setup-node-6
- dev-dependabot/github_actions/0.x/actions/upload-artifact-5
- dev-dependabot/github_actions/0.x/actions/checkout-5
- dev-feature/route-cruds
- dev-test-application
- dev-dependabot/npm_and_yarn/nanoid-3.3.8
- dev-dependabot/npm_and_yarn/express-4.21.1
- dev-dependabot/npm_and_yarn/multi-8a99b2c3f2
- dev-dependabot/npm_and_yarn/multi-9f37c16f8f
- dev-dependabot/npm_and_yarn/cross-spawn-7.0.6
- dev-dependabot/npm_and_yarn/vue-3.0.0
- dev-dependabot/npm_and_yarn/multi-cf87d80143
- dev-dependabot/npm_and_yarn/multi-d66d039ac5
- dev-dependabot/npm_and_yarn/multi-9423f4c335
- dev-dependabot/npm_and_yarn/micromatch-4.0.8
- dev-dependabot/npm_and_yarn/webpack-5.94.0
- dev-dependabot/npm_and_yarn/multi-701527892e
- dev-dependabot/npm_and_yarn/webpack-dev-middleware-5.3.4
- dev-dependabot/npm_and_yarn/ws-8.17.1
- dev-dependabot/npm_and_yarn/follow-redirects-1.15.6
- dev-dependabot/npm_and_yarn/0.x/vue-loader-17.4.2
- dev-dependabot/github_actions/0.x/actions/cache-4
This package is auto-updated.
Last update: 2026-03-09 13:41:24 UTC
README
Sylius Happy CMS Plugin
Overview • Installation • Documentation
Overview
Happy CMS is a simple Content Management System (CMS) plugin for Sylius that enables you to create and manage dynamic pages based on Sylius custom and routable resources.
The plugin brings awesome CMS features to Sylius, including:
- Page Builder: A back-office visual interface for preview and managing pages content with various content blocks.
- Media Management: Organize and manage media files (images, videos, documents) used in your CMS pages. Built with Flysystem storage abstraction layer.
- SEO: Built-in SEO management for optimizing your pages for search engines.
- Multilingue: Full support for multiple languages and locales.
- Custom Routable Resource: Define your own entities (blog, faq, etc...) that can be routed and displayed as CMS pages with specific logic, routes and templates.
- Menu Management: Create and manage menus for your site navigation.
- Flexible Blocks: Use default (or create custom) various types of content blocks (text, images, videos, etc.) within your pages.
- Shared Blocks: Reusable content blocks that can be used across multiple pages.
- Helpers:
- Commands to generate entities, repositories and admin classes for your custom routable resources.
- Commands to generate blocks easily.
- AI: Leverage AI to assist in generating content for your pages (requires API key).
- CRUD: Integrated with Sylius Easy CRUD Plugin for simplified Sylius resources CRUD management.
Installation and documentation
Versions
| Plugin Version | Sylius | Php | Symfony | New - Guide | Support |
|---|---|---|---|---|---|
| 1.13, 1.14 | 1.13, 1.14 | 8.2, 8.3, 8.4 | 6.4, 7.x | See installation guide | No (Alpha) |
| ^2.0.0 | ^2.0.0 | 8.2, 8.3, 8.4 | 6.4, 7.x | - Sylius 2.0 [BC] Migrate from v1 guide | No (Béta) |
| ^2.1.0 | ^2.0.0 | 8.3, 8.4, 8.5 | 7.4 | - See installation guide - New content model persistence, new page builder [BC] - Migrate from ^2.0.0 version |
Yes |
Feature preview
Installation
1. Install via Composer
composer require agence-adeliom/sylius-happy-cms-plugin --no-scripts composer require --dev symfony/maker-bundle --no-scripts
2. Enable the Bundle
Add the plugin to config/bundles.php:
<?php return [ // ... Adeliom\SyliusEasyCrudPlugin\SyliusEasyCrudPlugin::class => ['all' => true], Adeliom\SyliusHappyCMSPlugin\SyliusHappyCMSPlugin::class => ['all' => true], Symfony\Bundle\MakerBundle\MakerBundle::class => ['dev' => true, 'test' => true], ];
3. Import Configuration
In config/packages/_sylius.yaml:
imports: - { resource: "@SyliusEasyCrudPlugin/config/config.yaml" } - { resource: "@SyliusHappyCMSPlugin/config/config.yaml" }
4. Import Routes
In config/routes.yaml:
sylius_happy_cms: resource: "@SyliusHappyCMSPlugin/config/routes.yaml" sylius_easy_crud: resource: "@SyliusEasyCrudPlugin/config/routes.yaml"
5. Configure your firewall to protect preview routes
All admin users with ROLE_ALLOWED_TO_SWITCH AND ROLE_HAPPY_CMS_CONTENT_BUILDER will be able to preview CMS routable entities.
In config/packages/security.yaml
security: firewalls: #... admin_happy_cms_content_builder: switch_user: { role: ROLE_ALLOWED_TO_SWITCH } context: admin pattern: "%sylius.security.shop_regex%" request_matcher: Adeliom\SyliusHappyCMSPlugin\Security\PreviewRequestMatcher provider: sylius_admin_user_provider #... role_hierarchy: ROLE_ADMINISTRATION_ACCESS: [ ROLE_HAPPY_CMS_CONTENT_BUILDER ]
5. Generate default files in your project (entities, repositories and admin classes) :
Actually, we don't have Symfony recipes, so we created a command to generate files automatically.
php bin/console make:happy-cms:install
This command will :
- Create all entities, repositories and admin class
- update config/routes.yaml by adding route properly declared
- update config/packages/sylius_resource.yaml by adding sylius routes properly declared
- update config/packages/sylius_happy_cms.yaml by adding new files properly declared
If something goes wrong, you can do those actions manually, check detailed configuration.
6. Install Assets
php bin/console assets:install
7. Update database
php bin/console doc:mig:diff
php bin/console doc:mig:mig
php bin/console cache:clear
# To compile our symfony UX components, you need to re run npm install and npm run build in the root of your project
npm install
npm run build
8. (Optional) Configure AI Development Guides
If you're using AI assistants (like Claude Code, GitHub Copilot, or Cursor), configure them to use the plugin's specialized guides:
For Claude Code users:
Create or update CLAUDE.md in your project root:
# Project Instructions [Your existing project instructions...] ## Sylius Happy CMS Plugin This project uses [Sylius Happy CMS Plugin](https://github.com/agence-adeliom/sylius-happy-cms-plugin) for content management. ### AI Development Guides Import the AI development guides for efficient development: - **Happy CMS development guides**: `vendor/agence-adeliom/sylius-happy-cms-plugin/docs/agents/CLAUDE.md`
For other AI assistants:
Create or update .cursorrules, AGENTS.md, or your AI configuration file with similar content pointing to the guides in vendor/agence-adeliom/sylius-happy-cms-plugin/docs/agents/.
Add "See @CLAUDE.md"
Documentation
- Override default Sylius homepage
- Routing
- Seo
- Medias
- Blocks
- Menu
- AI
- Full plugin configuration
- Contribution
Start by read the documentation, then you can :
- Use bundles commands to create new routable resources (blog, faq, brand pages, etc.) see here
- Use bundle commands to create new content blocks (flex or shared)
If this plugin helped you, please consider giving it a ⭐ on GitHub!
Made with ❤️ by Adeliom


