Download the PHP package makinacorpus/preferences-bundle without Composer
On this page you can find all versions of the php package makinacorpus/preferences-bundle. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download makinacorpus/preferences-bundle
More information about makinacorpus/preferences-bundle
Files in makinacorpus/preferences-bundle
Package preferences-bundle
Short Description Preferences are configuration variables that are user-managed for which we cannot rely upon container parameters or environment variables.
License GPL-2.0-or-later
Homepage http://github.com/makinacorpus/preferences-bundle
Informations about the package preferences-bundle
Preferences
Preferences are configuration variables that are meant to be user managed for which we cannot rely upon container parameters or environment variables.
This bundle provides a simple API for:
-
Defining a preferences variable schema, with variable name, type, and description.
-
Reading them as environment variables by the container, in order to allow using those variables as services parameters.
-
A form type which handles all basic types (int, type, string) as collections or single-values variables, which you can use in any form.
-
An implementation for storing user values in database using
makinacorpus/goat-query
. -
Bus handlers and messages for
symfony/messenger
,makinacorpus/goat
andmakinacorpus/corebus
. -
An interface for reading the schema defined in project configuration.
- An interface for reading values.
Setup
This package is depends on makinacorpus/goat-query
.
Simply install this package:
Then add the bundle into your config/bundles.php
file:
Define a custom schema
You can define a schema:
Where the number of entries is unlimited. Only limit is your memory because the whole definition will be injected as a bare PHP array into the default array schema implementation.
Please note that because Symfony environment variables processor validates
strictly the variables names, all non alpha-numeric and non _
characters
will make the environment variable processor fail. If you plan to inject
your variables into services using environment variables, you must name
your variables accordingly, such as:
All options are optional. Defaults are:
Parameters you can set on each variable definition:
label
: is a human readable short name,description
: is a human readable long description,type
: can be either of:string
,bool
,int
,float
,allowed_values
: is an array of arbitrary values, for later validation,collection
: if set totrue
, multiple values are allowed for this variable,hashmap
: if set to true, keys are allowed, this is ignored ifcollection
isfalse
,default
: arbitrary default value if not configured by the user.
Usage
Inject preferences as service arguments
This package defines a EnvVarProcessorInterface
implementation allowing to
inject preferences like environment variables, such as:
Use Preferences service into other services.
Type hint your injected parameters using MakinaCorpus\Preferences\Preferences
then use the get(string $name): mixed
method to fetch values.
Long term roadmap
- Add new repository implementations (Redis, PDO, other...).
- Implement correctly bus handlers.
- Implement PHP schema dumper.