Download the PHP package vivait/string-generator-bundle without Composer
On this page you can find all versions of the php package vivait/string-generator-bundle. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download vivait/string-generator-bundle
More information about vivait/string-generator-bundle
Files in vivait/string-generator-bundle
Package string-generator-bundle
Short Description Generate random strings for IDs or keys using property annotations
License MIT
Informations about the package string-generator-bundle
StringGeneratorBundle
This bundle allows you to automatically generate a unique random string on an entity property, useful for
creating keys. Using Doctrine's prePersist callback, StringGenerator adds the generated string to a property
before the entity is persisted. It also checks whether the string is unique to that property (just in case) and if not, quietly
generates a new string.
Install
Run: composer require vivait/string-generator-bundle:^3.0 to install the bundle.
If you are using PHP 5.3 or 5.4 you can use the legacy versionvivait/string-generator-bundle:^1.1
Update your AppKernel:
Bundled generators
StringGenerator
Generates a random string based on a pool or characters. Defaults:
SecureStringGenerator
Generates a secure random string using ircmaxell's RandomLib. The library provides three different strengths of
strings(currently high is unavailable), low and medium. Defaults:
SecureBytesGenerator
Generates a secure random byte string using the Symfony\Component\Security\Core\Util\SecureRandom class. Defaults:
UuidStringGenerator
For use this generator you should require the package in your application.
For generating a UUID:
You can use also namespaced versions (v3 and v5). For example with the v5:
Usage
Add the @Generate(generator="generator_name") annotation to an entity property
(where generator_name is the name of a generator defined in the configuration).
generator is a required property of the annotation.
Options
Generators that implement ConfigurableGeneratorInterface, such as the bundled generators have options which can be configured.
To do this, set the options parameter on the annotation:
Callbacks
It's possible to define callbacks on the Generator class that you are using.
For example, with the bundled StringGenerator, you may wish to set the a prefix on the generated string
This can be achieved by setting the callbacks option. For example:
Here, setChars() is called in the StringGenerator class, passing ABCDEFG as a parameter.
It's even possible to set a callback value dynamically:
In this case StringGenerator::setPrefix("default") will be called
Unique
Setting unique is boolean and tell if the string must be unique or not, by default true
Override
By default, override is set to true, so a string is always generated for a property.
However, by setting override to false, only null properties will have a string generated for them.
Custom generators
You can use your own generators by implementing GeneratorInterface and defining the generator in your services.yml file with the tag vivait_generator.generator and an alias, which will be used to identify the Generator in annotations.
To create configurable generators, implement ConfigurableGeneratorInterface. This interface uses
Symfony\Component\OptionsResolver\OptionsResolver to set the generator configuration.
Set default options:
Do something with options:
Upgrading from version 1 to version 2
Defining generators in configuration was deprecated in version 2 in favour of service definitions, so they must be removed.
-
For any CUSTOM generators you have added, you must now define them as services with a
vivait_generator.generatortag and analiasattribute. You will not need to do this for the bundled default generators. - Remove all
vivait_string_generatorconfiguration from your project
Upgrading from version 2 to version 3
- Remove all
vivait_string_generatorconfiguration from your project if not already gone as it will no longer be recognised.
All versions of string-generator-bundle with dependencies
doctrine/orm Version ^2.6
symfony/security Version ^3.3|^4.0
symfony/options-resolver Version ^3.0|^4.0
ircmaxell/random-lib Version ~1.0
symfony/dependency-injection Version ^3.3|^4.0
symfony/config Version ^3.3|^4.0