-
-
Save JonathonReinhart/f6b3bbe803eedb8f20a64ca1a38c9325 to your computer and use it in GitHub Desktop.
phpdotenv unset variable demo
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# A simple, constant env var | |
CONST='A constant env var' | |
# Derived from another variable | |
DERIV="I came from ${CONST} with some more" | |
# An environment variable we expect to be set on the outside | |
EXT_SET=${ENV_EXT_SET} | |
# An environment variable we expect *not* to be set on the outside | |
EXT_UNSET=${ENV_EXT_UNSET} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
vendor/ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
image: php7-composer |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"require": { | |
"vlucas/phpdotenv": "5.2.0" | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"_readme": [ | |
"This file locks the dependencies of your project to a known state", | |
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", | |
"This file is @generated automatically" | |
], | |
"content-hash": "ad455181d1a1979617af190f28f31b2f", | |
"packages": [ | |
{ | |
"name": "graham-campbell/result-type", | |
"version": "v1.0.1", | |
"source": { | |
"type": "git", | |
"url": "https://github.com/GrahamCampbell/Result-Type.git", | |
"reference": "7e279d2cd5d7fbb156ce46daada972355cea27bb" | |
}, | |
"dist": { | |
"type": "zip", | |
"url": "https://api.github.com/repos/GrahamCampbell/Result-Type/zipball/7e279d2cd5d7fbb156ce46daada972355cea27bb", | |
"reference": "7e279d2cd5d7fbb156ce46daada972355cea27bb", | |
"shasum": "" | |
}, | |
"require": { | |
"php": "^7.0|^8.0", | |
"phpoption/phpoption": "^1.7.3" | |
}, | |
"require-dev": { | |
"phpunit/phpunit": "^6.5|^7.5|^8.5|^9.0" | |
}, | |
"type": "library", | |
"extra": { | |
"branch-alias": { | |
"dev-master": "1.0-dev" | |
} | |
}, | |
"autoload": { | |
"psr-4": { | |
"GrahamCampbell\\ResultType\\": "src/" | |
} | |
}, | |
"notification-url": "https://packagist.org/downloads/", | |
"license": [ | |
"MIT" | |
], | |
"authors": [ | |
{ | |
"name": "Graham Campbell", | |
"email": "graham@alt-three.com" | |
} | |
], | |
"description": "An Implementation Of The Result Type", | |
"keywords": [ | |
"Graham Campbell", | |
"GrahamCampbell", | |
"Result Type", | |
"Result-Type", | |
"result" | |
], | |
"support": { | |
"issues": "https://github.com/GrahamCampbell/Result-Type/issues", | |
"source": "https://github.com/GrahamCampbell/Result-Type/tree/v1.0.1" | |
}, | |
"funding": [ | |
{ | |
"url": "https://github.com/GrahamCampbell", | |
"type": "github" | |
}, | |
{ | |
"url": "https://tidelift.com/funding/github/packagist/graham-campbell/result-type", | |
"type": "tidelift" | |
} | |
], | |
"time": "2020-04-13T13:17:36+00:00" | |
}, | |
{ | |
"name": "phpoption/phpoption", | |
"version": "1.7.5", | |
"source": { | |
"type": "git", | |
"url": "https://github.com/schmittjoh/php-option.git", | |
"reference": "994ecccd8f3283ecf5ac33254543eb0ac946d525" | |
}, | |
"dist": { | |
"type": "zip", | |
"url": "https://api.github.com/repos/schmittjoh/php-option/zipball/994ecccd8f3283ecf5ac33254543eb0ac946d525", | |
"reference": "994ecccd8f3283ecf5ac33254543eb0ac946d525", | |
"shasum": "" | |
}, | |
"require": { | |
"php": "^5.5.9 || ^7.0 || ^8.0" | |
}, | |
"require-dev": { | |
"bamarni/composer-bin-plugin": "^1.4.1", | |
"phpunit/phpunit": "^4.8.35 || ^5.7.27 || ^6.5.6 || ^7.0 || ^8.0 || ^9.0" | |
}, | |
"type": "library", | |
"extra": { | |
"branch-alias": { | |
"dev-master": "1.7-dev" | |
} | |
}, | |
"autoload": { | |
"psr-4": { | |
"PhpOption\\": "src/PhpOption/" | |
} | |
}, | |
"notification-url": "https://packagist.org/downloads/", | |
"license": [ | |
"Apache-2.0" | |
], | |
"authors": [ | |
{ | |
"name": "Johannes M. Schmitt", | |
"email": "schmittjoh@gmail.com" | |
}, | |
{ | |
"name": "Graham Campbell", | |
"email": "graham@alt-three.com" | |
} | |
], | |
"description": "Option Type for PHP", | |
"keywords": [ | |
"language", | |
"option", | |
"php", | |
"type" | |
], | |
"support": { | |
"issues": "https://github.com/schmittjoh/php-option/issues", | |
"source": "https://github.com/schmittjoh/php-option/tree/1.7.5" | |
}, | |
"funding": [ | |
{ | |
"url": "https://github.com/GrahamCampbell", | |
"type": "github" | |
}, | |
{ | |
"url": "https://tidelift.com/funding/github/packagist/phpoption/phpoption", | |
"type": "tidelift" | |
} | |
], | |
"time": "2020-07-20T17:29:33+00:00" | |
}, | |
{ | |
"name": "symfony/polyfill-ctype", | |
"version": "v1.20.0", | |
"source": { | |
"type": "git", | |
"url": "https://github.com/symfony/polyfill-ctype.git", | |
"reference": "f4ba089a5b6366e453971d3aad5fe8e897b37f41" | |
}, | |
"dist": { | |
"type": "zip", | |
"url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/f4ba089a5b6366e453971d3aad5fe8e897b37f41", | |
"reference": "f4ba089a5b6366e453971d3aad5fe8e897b37f41", | |
"shasum": "" | |
}, | |
"require": { | |
"php": ">=7.1" | |
}, | |
"suggest": { | |
"ext-ctype": "For best performance" | |
}, | |
"type": "library", | |
"extra": { | |
"branch-alias": { | |
"dev-main": "1.20-dev" | |
}, | |
"thanks": { | |
"name": "symfony/polyfill", | |
"url": "https://github.com/symfony/polyfill" | |
} | |
}, | |
"autoload": { | |
"psr-4": { | |
"Symfony\\Polyfill\\Ctype\\": "" | |
}, | |
"files": [ | |
"bootstrap.php" | |
] | |
}, | |
"notification-url": "https://packagist.org/downloads/", | |
"license": [ | |
"MIT" | |
], | |
"authors": [ | |
{ | |
"name": "Gert de Pagter", | |
"email": "BackEndTea@gmail.com" | |
}, | |
{ | |
"name": "Symfony Community", | |
"homepage": "https://symfony.com/contributors" | |
} | |
], | |
"description": "Symfony polyfill for ctype functions", | |
"homepage": "https://symfony.com", | |
"keywords": [ | |
"compatibility", | |
"ctype", | |
"polyfill", | |
"portable" | |
], | |
"support": { | |
"source": "https://github.com/symfony/polyfill-ctype/tree/v1.20.0" | |
}, | |
"funding": [ | |
{ | |
"url": "https://symfony.com/sponsor", | |
"type": "custom" | |
}, | |
{ | |
"url": "https://github.com/fabpot", | |
"type": "github" | |
}, | |
{ | |
"url": "https://tidelift.com/funding/github/packagist/symfony/symfony", | |
"type": "tidelift" | |
} | |
], | |
"time": "2020-10-23T14:02:19+00:00" | |
}, | |
{ | |
"name": "symfony/polyfill-mbstring", | |
"version": "v1.20.0", | |
"source": { | |
"type": "git", | |
"url": "https://github.com/symfony/polyfill-mbstring.git", | |
"reference": "39d483bdf39be819deabf04ec872eb0b2410b531" | |
}, | |
"dist": { | |
"type": "zip", | |
"url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/39d483bdf39be819deabf04ec872eb0b2410b531", | |
"reference": "39d483bdf39be819deabf04ec872eb0b2410b531", | |
"shasum": "" | |
}, | |
"require": { | |
"php": ">=7.1" | |
}, | |
"suggest": { | |
"ext-mbstring": "For best performance" | |
}, | |
"type": "library", | |
"extra": { | |
"branch-alias": { | |
"dev-main": "1.20-dev" | |
}, | |
"thanks": { | |
"name": "symfony/polyfill", | |
"url": "https://github.com/symfony/polyfill" | |
} | |
}, | |
"autoload": { | |
"psr-4": { | |
"Symfony\\Polyfill\\Mbstring\\": "" | |
}, | |
"files": [ | |
"bootstrap.php" | |
] | |
}, | |
"notification-url": "https://packagist.org/downloads/", | |
"license": [ | |
"MIT" | |
], | |
"authors": [ | |
{ | |
"name": "Nicolas Grekas", | |
"email": "p@tchwork.com" | |
}, | |
{ | |
"name": "Symfony Community", | |
"homepage": "https://symfony.com/contributors" | |
} | |
], | |
"description": "Symfony polyfill for the Mbstring extension", | |
"homepage": "https://symfony.com", | |
"keywords": [ | |
"compatibility", | |
"mbstring", | |
"polyfill", | |
"portable", | |
"shim" | |
], | |
"support": { | |
"source": "https://github.com/symfony/polyfill-mbstring/tree/v1.20.0" | |
}, | |
"funding": [ | |
{ | |
"url": "https://symfony.com/sponsor", | |
"type": "custom" | |
}, | |
{ | |
"url": "https://github.com/fabpot", | |
"type": "github" | |
}, | |
{ | |
"url": "https://tidelift.com/funding/github/packagist/symfony/symfony", | |
"type": "tidelift" | |
} | |
], | |
"time": "2020-10-23T14:02:19+00:00" | |
}, | |
{ | |
"name": "symfony/polyfill-php80", | |
"version": "v1.20.0", | |
"source": { | |
"type": "git", | |
"url": "https://github.com/symfony/polyfill-php80.git", | |
"reference": "e70aa8b064c5b72d3df2abd5ab1e90464ad009de" | |
}, | |
"dist": { | |
"type": "zip", | |
"url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/e70aa8b064c5b72d3df2abd5ab1e90464ad009de", | |
"reference": "e70aa8b064c5b72d3df2abd5ab1e90464ad009de", | |
"shasum": "" | |
}, | |
"require": { | |
"php": ">=7.1" | |
}, | |
"type": "library", | |
"extra": { | |
"branch-alias": { | |
"dev-main": "1.20-dev" | |
}, | |
"thanks": { | |
"name": "symfony/polyfill", | |
"url": "https://github.com/symfony/polyfill" | |
} | |
}, | |
"autoload": { | |
"psr-4": { | |
"Symfony\\Polyfill\\Php80\\": "" | |
}, | |
"files": [ | |
"bootstrap.php" | |
], | |
"classmap": [ | |
"Resources/stubs" | |
] | |
}, | |
"notification-url": "https://packagist.org/downloads/", | |
"license": [ | |
"MIT" | |
], | |
"authors": [ | |
{ | |
"name": "Ion Bazan", | |
"email": "ion.bazan@gmail.com" | |
}, | |
{ | |
"name": "Nicolas Grekas", | |
"email": "p@tchwork.com" | |
}, | |
{ | |
"name": "Symfony Community", | |
"homepage": "https://symfony.com/contributors" | |
} | |
], | |
"description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions", | |
"homepage": "https://symfony.com", | |
"keywords": [ | |
"compatibility", | |
"polyfill", | |
"portable", | |
"shim" | |
], | |
"support": { | |
"source": "https://github.com/symfony/polyfill-php80/tree/v1.20.0" | |
}, | |
"funding": [ | |
{ | |
"url": "https://symfony.com/sponsor", | |
"type": "custom" | |
}, | |
{ | |
"url": "https://github.com/fabpot", | |
"type": "github" | |
}, | |
{ | |
"url": "https://tidelift.com/funding/github/packagist/symfony/symfony", | |
"type": "tidelift" | |
} | |
], | |
"time": "2020-10-23T14:02:19+00:00" | |
}, | |
{ | |
"name": "vlucas/phpdotenv", | |
"version": "v5.2.0", | |
"source": { | |
"type": "git", | |
"url": "https://github.com/vlucas/phpdotenv.git", | |
"reference": "fba64139db67123c7a57072e5f8d3db10d160b66" | |
}, | |
"dist": { | |
"type": "zip", | |
"url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/fba64139db67123c7a57072e5f8d3db10d160b66", | |
"reference": "fba64139db67123c7a57072e5f8d3db10d160b66", | |
"shasum": "" | |
}, | |
"require": { | |
"ext-pcre": "*", | |
"graham-campbell/result-type": "^1.0.1", | |
"php": "^7.1.3 || ^8.0", | |
"phpoption/phpoption": "^1.7.4", | |
"symfony/polyfill-ctype": "^1.17", | |
"symfony/polyfill-mbstring": "^1.17", | |
"symfony/polyfill-php80": "^1.17" | |
}, | |
"require-dev": { | |
"bamarni/composer-bin-plugin": "^1.4.1", | |
"ext-filter": "*", | |
"phpunit/phpunit": "^7.5.20 || ^8.5.2 || ^9.0" | |
}, | |
"suggest": { | |
"ext-filter": "Required to use the boolean validator." | |
}, | |
"type": "library", | |
"extra": { | |
"branch-alias": { | |
"dev-master": "5.2-dev" | |
} | |
}, | |
"autoload": { | |
"psr-4": { | |
"Dotenv\\": "src/" | |
} | |
}, | |
"notification-url": "https://packagist.org/downloads/", | |
"license": [ | |
"BSD-3-Clause" | |
], | |
"authors": [ | |
{ | |
"name": "Graham Campbell", | |
"email": "graham@alt-three.com", | |
"homepage": "https://gjcampbell.co.uk/" | |
}, | |
{ | |
"name": "Vance Lucas", | |
"email": "vance@vancelucas.com", | |
"homepage": "https://vancelucas.com/" | |
} | |
], | |
"description": "Loads environment variables from `.env` to `getenv()`, `$_ENV` and `$_SERVER` automagically.", | |
"keywords": [ | |
"dotenv", | |
"env", | |
"environment" | |
], | |
"support": { | |
"issues": "https://github.com/vlucas/phpdotenv/issues", | |
"source": "https://github.com/vlucas/phpdotenv/tree/v5.2.0" | |
}, | |
"funding": [ | |
{ | |
"url": "https://github.com/GrahamCampbell", | |
"type": "github" | |
}, | |
{ | |
"url": "https://tidelift.com/funding/github/packagist/vlucas/phpdotenv", | |
"type": "tidelift" | |
} | |
], | |
"time": "2020-09-14T15:57:31+00:00" | |
} | |
], | |
"packages-dev": [], | |
"aliases": [], | |
"minimum-stability": "stable", | |
"stability-flags": [], | |
"prefer-stable": false, | |
"prefer-lowest": false, | |
"platform": [], | |
"platform-dev": [], | |
"plugin-api-version": "2.0.0" | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
FROM alpine:edge | |
RUN apk --no-cache add \ | |
curl \ | |
php7 \ | |
php7-iconv \ | |
php7-json \ | |
php7-mbstring \ | |
php7-openssl \ | |
php7-phar | |
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/bin --filename=composer |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
set -e | |
# PHP | |
docker build -t php7-composer . | |
scuba composer update | |
# Python | |
virtualenv -p python3 venv | |
source venv/bin/activate | |
pip install -r requirements.txt |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
python-dotenv |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
export ENV_EXT_SET="set externally" | |
echo -e "\n------------------------------------------------------" | |
echo "Bash:" | |
{ | |
source .env | |
echo "CONST=$CONST" | |
echo "DERIV=$DERIV" | |
echo "EXT_SET=$EXT_SET" | |
echo "EXT_UNSET=$EXT_UNSET" | |
} | |
echo -e "\n------------------------------------------------------" | |
echo "phpdotenv:" | |
scuba -e "ENV_EXT_SET=$ENV_EXT_SET" php test.php | |
echo -e "\n------------------------------------------------------" | |
echo "python-dotenv:" | |
source venv/bin/activate | |
./test.py | |
deactivate |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
require __DIR__ . '/vendor/autoload.php'; | |
$d = Dotenv\Dotenv::createImmutable(__DIR__); | |
$d->load(); | |
echo "\$_ENV = "; | |
print_r($_ENV); | |
?> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env python3 | |
from dotenv import load_dotenv | |
import os | |
load_dotenv() | |
def show(k): | |
print("{}={}".format(k, os.getenv(k))) | |
show("CONST") | |
show("DERIV") | |
show("EXT_SET") | |
show("EXT_UNSET") |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
See vlucas/phpdotenv#468.
Requires scuba.