Download the PHP package vinorcola/helper-bundle without Composer
On this page you can find all versions of the php package vinorcola/helper-bundle. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download vinorcola/helper-bundle
More information about vinorcola/helper-bundle
Files in vinorcola/helper-bundle
Package helper-bundle
Short Description Bundle providing several helper tools.
License MIT
Informations about the package helper-bundle
VinorcolaHelperBundle
Provide some useful base classes and services.
Translation system
The bundle provide a TranslationModel
service which help building international apps by standardizing the way translation keys are built.
When you translate an application, you mostly end-up sorting messages in 2 categories: messages linked to an attribute of an object (an entity) and messages linked to the page context.
Messages linked to page context
This translation system introduce a system of relative keys
based on the route name. For example, if your action is triggered by a route called myController.myAction
, then if you translate the message key message
(using TranslationModel::tr
), it will look for the key myController.myAction.message
in Symfony translation system. This helps simplifying templates:
In this example,
{{ 'message'|tr }}
is equivalent to{{ 'myRouteName.message'|trans }}
{{ 'submit'|tr }}
is equivalent to{{ 'myRouteName.submit'|trans }}
{{ 'cancel'|tr }}
is equivalent to{{ 'myRouteName.cancel'|trans }}
{{ pageTitle() }}
is equivalent to{{ 'title'|tr }}
or{{ 'myRouteName.title'|trans }}
Furthermore, the system will auto-wrap translation parameters with percent (%
):
You can still keep the percent if you like (or for compatibility purposes):
If you require a specific message to be translated (instead of a relative message prepended with the route name), you can simply prefix your message key with a =
sign:
If you require a plural translation, you can suffix your message key with a +
sign:
Messages linked to object attributes
The TranslationModel::tra()
method help building translation keys base on object attributes. Your must provide an attribute name and an object name and it will translate the message attribute.myObject.myAttribute
with Symfony translation system.
For example in templates:
{{ 'title'|tra('user') }}
is equivalent to{{ 'attribute.user.title'|trans }}
{{ 'emailAddress'|tra('user') }}
is equivalent to{{ 'attribute.user.emailAddress'|trans }}
{{ 'city'|tra('user') }}
is equivalent to{{ 'attribute.user.city'|trans }}
You can then use this pattern in Symfony forms:
Base controller
The bundle provide a base controller inheriting Symfony's base controller and helping working with the translation system. It provides methods to easily add error messages to form and flash messages.
Furthermore, it provides a saveDatabase()
method that is basically doing $em->flush()
. Your controller gain in readability and you don't need to inject the EntityManager
anymore if you are working with repositories as services!
Simple repository
This bundle provide a very simple repository that help you to declare your repositories as services. No more $em->getRepository(MyEntity::class)
, simply inject your repository as you would do with any services.
All versions of helper-bundle with dependencies
symfony/dependency-injection Version ^5.0 | ^6.0
symfony/framework-bundle Version ^5.0 | ^6.0
symfony/translation Version ^5.0 | ^6.0