<?php namespace Illuminate\Support; use Dotenv\Repository\Adapter\PutenvAdapter; use Dotenv\Repository\RepositoryBuilder; use PhpOption\Option; class Env { /** * Indicates if the putenv adapter is enabled. * * @var bool */ protected static $putenv = true; /** * The environment repository instance. * * @var \Dotenv\Repository\RepositoryInterface|null */ protected static $repository; /** * Enable the putenv adapter. * * @return void */ public static function enablePutenv() { static::$putenv = true; static::$repository = null; } /** * Disable the putenv adapter. * * @return void */ public static function disablePutenv() { static::$putenv = false; static::$repository = null; } /** * Get the environment repository instance. * * @return \Dotenv\Repository\RepositoryInterface */ public static function getRepository() { if (static::$repository === null) { $builder = RepositoryBuilder::createWithDefaultAdapters(); if (static::$putenv) { $builder = $builder->addAdapter(PutenvAdapter::class); } static::$repository = $builder->immutable()->make(); } return static::$repository; } /** * Gets the value of an environment variable. * * @param string $key * @param mixed $default * @return mixed */ public static function get($key, $default = null) { return Option::fromValue(static::getRepository()->get($key)) ->map(function ($value) { switch (strtolower($value)) { case 'true': case '(true)': return true; case 'false': case '(false)': return false; case 'empty': case '(empty)': return ''; case 'null': case '(null)': return; } if (preg_match('/\A([\'"])(.*)\1\z/', $value, $matches)) { return $matches[2]; } return $value; }) ->getOrCall(fn () => value($default)); } }
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
Exceptions | Folder | 0755 |
|
|
Facades | Folder | 0755 |
|
|
Testing | Folder | 0755 |
|
|
Traits | Folder | 0755 |
|
|
AggregateServiceProvider.php | File | 995 B | 0644 |
|
Benchmark.php | File | 1.49 KB | 0644 |
|
Carbon.php | File | 425 B | 0644 |
|
Composer.php | File | 2.82 KB | 0644 |
|
ConfigurationUrlParser.php | File | 4.25 KB | 0644 |
|
DateFactory.php | File | 7.76 KB | 0644 |
|
Env.php | File | 2.36 KB | 0644 |
|
Fluent.php | File | 4.14 KB | 0644 |
|
HigherOrderTapProxy.php | File | 665 B | 0644 |
|
HtmlString.php | File | 1.03 KB | 0644 |
|
InteractsWithTime.php | File | 1.55 KB | 0644 |
|
Js.php | File | 3.44 KB | 0644 |
|
LICENSE.md | File | 1.05 KB | 0644 |
|
Lottery.php | File | 5.66 KB | 0644 |
|
Manager.php | File | 4.46 KB | 0644 |
|
MessageBag.php | File | 9.8 KB | 0644 |
|
MultipleInstanceManager.php | File | 4.25 KB | 0644 |
|
NamespacedItemResolver.php | File | 3.35 KB | 0644 |
|
Optional.php | File | 2.64 KB | 0644 |
|
Pluralizer.php | File | 2.84 KB | 0644 |
|
ProcessUtils.php | File | 2 KB | 0644 |
|
Reflector.php | File | 4.32 KB | 0644 |
|
ServiceProvider.php | File | 10.76 KB | 0644 |
|
Str.php | File | 36.68 KB | 0644 |
|
Stringable.php | File | 29.75 KB | 0644 |
|
Timebox.php | File | 1.62 KB | 0644 |
|
ValidatedInput.php | File | 4.61 KB | 0644 |
|
ViewErrorBag.php | File | 2.57 KB | 0644 |
|
composer.json | File | 1.74 KB | 0644 |
|
helpers.php | File | 10.08 KB | 0644 |
|