2017 © Pedro Peláez
 

library phpdotenv-safe

Load environment variables from .env and ensure they're all present

image

morrislaptop/phpdotenv-safe

Load environment variables from .env and ensure they're all present

  • Wednesday, March 14, 2018
  • by morrislaptop
  • Repository
  • 1 Watchers
  • 1 Stars
  • 153 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 1 Forks
  • 0 Open issues
  • 2 Versions
  • 80 % Grown

The README.md

morrislaptop/phpdotenv-safe

Drop in replacement for vlucas/phpdotenv, but ensures that all necessary environment variables are defined after reading from .env. These needed variables are read from .env.example, which should be committed along with your project., (*1)

This is heavily inspired by dotenv-safe., (*2)

Build Status, (*3)

Installation

composer require morrislaptop/phpdotenv-safe

Example

# .env.example, committed to repo
SECRET=
TOKEN=
KEY=
# .env, private
SECRET=topsecret
TOKEN=
$dotenv = new DotenvSafe\DotenvSafe(__DIR__);
$dotenv->load();

Since the provided .env file does not contain all the variables defined in .env.example, an exception is thrown:, (*4)

PHP Fatal error:  Uncaught Dotenv\Exception\ValidationException: One or more environment variables failed assertions: KEY is missing.

Not all the variables have to be defined in .env, they can be supplied externally. For example, the following would work:, (*5)

KEY=xyz php index.php

Usage with popular frameworks

Laravel

Laravel doesn't make it easy to swap out its existing Dotenv instance from vlucas/phpdotenv, but you can validate the environment manually with DotenvSafe when the application boots., (*6)

Just add the following to your AppServiceProvider->register method (which you'll find in app/providers/AppServiceProvider.php):, (*7)

  if (!$this->app->configurationIsCached()) {
      $dotenv = new DotenvSafe\DotenvSafe($this->app->environmentPath(), $this->app->environmentFile());
      $dotenv->check();
  }

Lumen

bootstrap/app.php runs when your application starts, and loads the environment using Dotenv\Dotenv. You can easily swap this out to use DotenvSafe\DotenvSafe. All you need to do is replace:, (*8)

(new Dotenv\Dotenv(__DIR__.'/../'))->load();

with:, (*9)

(new DotenvSafe\DotenvSafe(__DIR__.'/../'))->load();

The Versions

14/03 2018

dev-master

9999999-dev

Load environment variables from .env and ensure they're all present

  Sources   Download

BSD-3-Clause-Attribution

The Requires

 

The Development Requires

environment env dotenv

28/07 2017

v0.0.1

0.0.1.0

Load environment variables from .env and ensure they're all present

  Sources   Download

BSD-3-Clause-Attribution

The Requires

 

The Development Requires

environment env dotenv