See my blog post about this:
https://danielmg.org/php/2023/02/extending-symfony-bundle-flex-recipes-and-private-repositories.html
This project is part of my Post series about how to build a Symfony Flex Recipes repository (private or not).
This bundle is a demo that shows a couple of things yo can do on a Symfony bundle, such as:
- Console Command:
bin/console demo:command
- DemoServiceInterface & DemoService: Example of some kind of Contract/Adapter-like patter of a service
- Events: Custom event
UnnecessaryEvent
and simple EventSubscriberDemoSubscriber
- DemoTwigExtension: Adds a twig function
demoFcn()
- Controller:
- Route
/{a}/{b}
-> Simple endpoint that returns a Json response with some values and addsa + b
- Route
/view
-> Simple endpoint that renders a Twig template and returns HTML - Route
/dispatch/{md5_hash}
-> Simple endpoint to test dispatching ourUnnecessaryEvent
- Route
- Configuration
- Using Bundle config parameters
- Using Custom Env variables
DEMO_SAMPLE_ENV
- Usage of Translations and public assets.
composer require danielm/symfony-demo-bundle
Same composer
command as using the Recipe, you will also need to create/edit some files manually (that's what a Symfony recipe does for you)
...
Coding Standards (follows symfony's default rules)
# Displays errors
composer run cs:check
# Makes changes
composer run cs:fix
Testing
composer run test
PHP code analysis
composer run stan
- Validators examples
- Serialization examples
- Test Event & dispatcher