Comments (7)
That would be fantastic if you have time now. I won't have time for about another week or so myself.
I was thinking about putting everything under the Dotenv
namespace, and the primary class might be named something like Dotenv\Loader
.
Code use would be something like:
$dotenv = new Dotenv\Loader();
$dotenv->load();
$dotenv->required(['DATABASE_URL', 'APP_ENV']);
from phpdotenv.
I can take a look.
Thoughts on:
- A fluid interface
- Mutable by default *
- Single file or break out into small components
* I've always found the default mutability odd, but I know the ruby library does it. I'd argue that it's better to know that you .env variables are loaded as expected giving you an environment in a known state.
from phpdotenv.
Re: no.2 - ruby dotenv make use of a load
method, which is immutable, and an overload
method, which is mutable.
Re: the name – if you name it Dotenv\Loader
and then you use Dotenv
, your code will then look like new Loader()
which is a bit funky. I'd prefer Dotenv\Dotenv
, but it's your call.
Another thing, considering the weird apache bug highlighted in #39 when using getenv()
it might be an idea to encourage usage of $_ENV
instead… what do you think?
from phpdotenv.
Using Dotenv\Dotenv
is fine. Also, this project was originally inspired by the Ruby version, but I don't want to be obsessed with matching it 1:1 in all respects.
from phpdotenv.
@vlucas ok. What are your thoughts on immutability?
from phpdotenv.
I would like to keep a static factory method so I am not forced to use a instance variable:
\Dotenv\Dotenv::create()->load();
Or to mimic the v1. api:
\Dotenv\Dotenv::load(); // loads .env and returns instance
As of PHP 5.4 the following is also possible:
(new \Dotenv\Dotenv)->load();
from phpdotenv.
I'm almost done with an initial effort, which is more to do with testing the waters on some stuff than a proposed final solution, just to see what feels right, what feels wrong …etc.
from phpdotenv.
Related Issues (20)
- auto_detect_line_endings is deprecated (PHP 8.1 + dotenv v2.6.9) HOT 1
- PHP version 7.1 is not supported now HOT 2
- Equals Symbol in last line of multiline variable causes issues. HOT 3
- Save to .env HOT 1
- How to loads many env file, but the extension is .txt HOT 1
- Fatal error: Uncaught Error: Class "Dotenv\Dotenv" not found in HOT 1
- Performance degradation HOT 3
- Question - are there any 'builtin' variables? HOT 3
- Add reader with support for secret files
- loading a .env file from outside the webspace seem to not work
- php 8.2 function getenv() not set HOT 1
- Please dont use $_SERVER HOT 1
- Load AWS system environments HOT 4
- symfony/dotenv Correlation HOT 1
- PHP version 7.4 HOT 1
- How does this help with php_value in .htaccess?
- Is there anyway to use sections created in the .env file? HOT 4
- Fatal error: Uncaught Error: Class "Dotenv\Dotenv" not found in HOT 2
- Can one use Heredoc syntax for multi-line strings? HOT 1
- Failed to parse dotenv file due to unexpected whitespace HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from phpdotenv.