zeyad82 / laravel-envx
Laravel custom env with validation
Installs: 358
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 0
Open Issues: 0
pkg:composer/zeyad82/laravel-envx
Requires
- php: >=5.6.4
README
Laravel Envx is a custom php environment file as an array so that it can have associative and multidimensional arrays with validation rules in order to avoid any unexpected behaviour especially if there are several instances of the project.
This has been tested with laravel 5.6 and 5.7.
Highlights
- Make sure you don't go live without all required envx.php variables and without the correct values
- Validate envx.php variables using the Laravel Validator by defining rules in config/envx-validator.php
- Custom validation rule
required_ifanyto apply rules to an atrribute if another array attribute has a given value
Usage
Just like laravel env => envx('attribute', 'default')
Installation
Via Composer:
composer require zeyad82/laravel-envx
If you don't use auto-discovery, add the service provider your config/app.php:
Zeyad82\LaravelEnvx\LaravelEnvxServiceProvider::class,
Publish configuration file
php artisan vendor:publish --tag="laravel-envx"
This will publish config/envx-validator.php and envx.example.php then run
cp envx.example.php envx.php
If you will have different envx.php, add envx.php to .gitignore in your project root
If you will use envx in config files, the only way I found is to append the follwing to bootstrap/app.php after ExceptionHandler
$app->singleton('envx', function ($app) { return new Zeyad82\LaravelEnvx\EnvxService; });
Example configuration file
<?php // config/envx-validator.php return [ 'ARRAY' => 'required|array', 'ARRAY.*' => 'required|in:val1,val2,val3', 'ATTRIBUTE' => 'required_ifany:ARRAY,val1|url', ]
Example envx.php file
<?php return [ 'ARRAY' => 'required|array', 'ARRAY.*' => 'required|in:val1,val2,val3', 'ATTRIBUTE' => 'required_ifany:ARRAY,val1|url', ];
Screenshot
Command Line
Browser
Security
If you discover any security related issues, please email zeyad82@yahoo.com instead of using the issue tracker.
Credits
License
The MIT License (MIT). Please see License for more information.

