sidus / base-bundle
Ease the declaration of routing and services for Symfony 3 & 4
Installs: 38 859
Dependents: 11
Suggesters: 0
Security: 0
Stars: 1
Watchers: 2
Forks: 5
Open Issues: 1
Type:symfony-bundle
Requires
- php: >=5.6
- symfony/config: >=3.0
- symfony/dependency-injection: >=3.0
- symfony/finder: >=3.0
- symfony/form: >=3.0
- symfony/http-foundation: >=3.0
- symfony/http-kernel: >=3.0
- symfony/options-resolver: >=3.0
- symfony/translation: >=3.0
- symfony/validator: >=3.0
- symfony/var-dumper: >=3.0
README
Service loading
If you simply inherit from the SidusBaseExtension, all the YAML files present in this directory will be loaded:
./Resources/config/services
<?php namespace FooBarBundle\DependencyInjection; use Sidus\BaseBundle\DependencyInjection\SidusBaseExtension; class FooBarExtension extends SidusBaseExtension { }
Routing
Instead of using controllers, declare service for each action and then you just have to declare the routing like this:
FooBarBundle\Action\MyAction: # Route name must match service id path: /path/{parameter}
You don't need to declare the _controller
part, it will be loaded with your route name.
Param converter
Take a look at the AbstractParamConverter
, declaring param converter is much more simple now
Compiler passes
The GenericCompilerPass
allows you to easily inject all services tagged with a specific tag into another
service.
Utilities
DateTime parsing
DateTimeUtility::parse
will allow you to parse date time from multiple formats easily.
Translation
Use the TranslatorUtility
to iterate over various translation keys in order to return the first matching one.
Validator
You can use the BaseLoader
class to load a sets of constraints from a PHP array with the same syntax than Yaml:
<?php /** @var ValidatorInterface $validator */ use Sidus\BaseBundle\Validator\Mapping\Loader\BaseLoader;use Symfony\Component\Validator\Validator\ValidatorInterface; $loader = new BaseLoader(); $constraints = $loader->loadCustomConstraints([ ['Regex' => ['pattern' => '/^[a-z0-9]+(?:[-\_][a-z0-9]+)*$/']], ['NotNull' => null], ]); foreach ($constraints as $constraint) { $violations = $validator->validate($data, $constraint); // Do stuff with the violations }
Forms
The ChoiceTypeExtension
allows choice form types to work with iterable objects. You don't need to do anything.
A new option is available for any form type: block_prefix
allows you to directly choose a custom block prefix for
form rendering.
Serializer
See SidusBaseSerializerBundle for additional support.