https://github.com/codeadamca/php-env
A basic function to load variables from a .env file.
https://github.com/codeadamca/php-env
environment-variables php
Last synced: about 2 months ago
JSON representation
A basic function to load variables from a .env file.
- Host: GitHub
- URL: https://github.com/codeadamca/php-env
- Owner: codeadamca
- Created: 2022-09-09T18:40:31.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2025-01-26T21:38:26.000Z (5 months ago)
- Last Synced: 2025-03-31T07:18:54.541Z (3 months ago)
- Topics: environment-variables, php
- Language: PHP
- Homepage:
- Size: 22.5 KB
- Stars: 2
- Watchers: 1
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Hiding PHP Environment Varaibles
A basic vanilla PHP function to load variables from an `.env` file.
When you are creating a basic vanilla PHP project and want to keep your database credentials and/or API key out of your GitHub repository you can use a `.env` file.
1. Create a file called `.env` and place it in your project folder.
2. Put your actual database credentials and API keys in your `.env``file:
```php
DB_HOST=
DB_DATABASE=
DB_USERNAME=
DB_PASSWORD=
API_SECRET=real_api_key
```3. Create a second copy of your `.env` file and name it `.env.sample`. Use this file to provide instructions to the next programmer using your project code:
```php
DB_HOST=localhost
DB_DATABASE=database
DB_USERNAME=username
DB_PASSWORD=password
API_SECRET=api_key
```4. Make sure your GitHub repo does not include the file named `.env`. In your `.gitignore` file add:
```
.env
```> [!Note]
> I have excluded this step in this repo so you can view both the `.env` and `.env.sample` files.5. If your `.env` file is accessible from a browser, use a `.htaccess` file to hide your `.env` file:
```sh
order allow,deny
Deny from all
```6. In your database connection file, add this function to load the variables from the `.env` file, and place them in matching constants:
```php
$env = file(__DIR__.'/.env', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
foreach($env as $value)
{
$value = explode('=', $value);
define($value[0], $value[1]);
}
```7. Finally, you can use the contants in your database connection and any API code:
```php
$connect = mysqli_connect(DB_HOST, DB_USERNAME, DB_PASSWORD, DB_DATABASE);
```***
## Repo Sesources
* [Visual Studio Code](https://code.visualstudio.com/)
* [PHP](https://php.net)