Laravel EnvClient
Last updated
Last updated
Manage and validate environmental variables with artisan console commands, environmental rules and facades
To construct the \Lionix\Envclient
use Laravel Service Container instead of plain construct.
Set an environment variable using env:set
artisan command.
The command will modify your environment file by replacing or adding the given key to it.
If you want to apply validation rules to environmental variables before env:set
command will modify the file you will have to publish command package configuration files.
The command will create config/env.php
and app/Env/BaseEnvValidationRules.php
By adding validation rules into rules
method return value you will apply them to env:set
command.
This way if you try to set an invalid value to the DB_CONNECTION
variable with env:set
command, the console will print out an error
If your environment file was modified you can run env:check
command which will check all variables for validness and print out the results.
make:envrule
commandBy default, the script will generate a class in App/Env
namespace.
app/Env/DatabaseEnvRules.php
You can add the DatabaseEnvRules
class to env.php
configuration file at the rules
key. That way all the rules specified in the class will affect package artisan commands.
config/env.php
Or you can use Lionix\EnvClient
Facade to validate the input with given validation rules:
protected $getter : Lionix\EnvClient\Interfaces\EnvGetterInterface
protected $setter : Lionix\EnvClient\Interfaces\EnvSetterInterface
protected $validator : Lionix\EnvClient\Interfaces\EnvValidatorInterface
void
: __construct()
Create a new instance of EnvClient using default dependencies
self
: useGetter(Lionix\EnvClient\Interfaces\EnvGetterInterface $getter)
Set client getter dependency
self
: useSetter(Lionix\EnvClient\Interfaces\EnvSetterInterface $setter)
Set setter dependency
self
: useValidator(Lionix\EnvClient\Interfaces\EnvValidatorInterface $validator)
Set validator dependency merging current errors with the validator errors
array
: all()
Get all env variables from the environmental file
bool
: has(string $key)
Check if the environmental file contains the key
mixed
: get(string $key)
Get the env variable using the key (returns the output of Illuminate\Support\Env
get method)
self
: set(array $values)
Set the environmental variables at runtime if validation rules passed
self
: save()
Save previously set variables to the environmental file
self
: update()
If validation rules passed then set and save variables to the environmental file
bool
: validate(array $values)
Check values validness and retrieve passed status
Illuminate\Support\MessageBag
: errors()
Get all validation errors occurred during the class lifetime
void
: __construct()
Create a new instance of EnvGetter
mixed
: get(string $key)
Get the env variable using the key (returns the output of Illuminate\Support\Env
get method)
array
: all()
Get all env variables from the environmental file
bool
: has(string $key)
Check if the environmental file contains the key
protected $variablesToSet : array
void
: __construct()
Create a new instance of EnvSetter
void
: set(array $values)
Merge given values with variablesToSet property
void
: save()
Save all variables previously set by the set method to the environmental file
protected string
: sanitize(string $value)
Sanitize input values
protected $errors : Illuminate\Support\MessageBag
void
: __construct()
Create a new instance of EnvValidator
array
: rules()
Returns class validation rules
bool
: validate(array $values)
Validate given values
Illuminate\Support\MessageBag
: errors()
Get validator errors
void
: mergeErrors(Illuminate\Support\MessageBag $errors)
Merge given MessageBag with current errors
Signature
Description
env:get {key}
Prints .env variable value
env:set {key} {value}
Sets .env variable if validation rules are passed
env:check
Check all env variables for validness
env:empty
Print empty .env variables
make:envrule {name}
Create a new .env validation rules