ENV vars intro

ENV vars help to create and shape the environment of where the code runs.

# Problem

You most likely run at least two environments for your app: a local one for development and one on fortrabbit for production. Both instances probably have access to a database, but your local MySQL credentials will differ from the remote ones. Your config.php file is under Git version control, so how do you manage different environment-specific configurations, from database credentials to API keys? Additionally, how do you work in a team where everyone has their own local settings? How do you separate code from configuration to ensure portability and keep secrets secure?

# Solution

Store everything specific to the environment in environment variables, or 'ENV vars' for short. An ENV var is a key-value pair, like so: MY_SQL_PASS=sCRAmblEDegGGs. The concept of ENV vars is widely used across different software systems, including Apache, Node.js, and PHP. Accessing ENV vars from PHP is straightforward, and it is a commonly accepted best practice to use them for configuration management.

# Benefits

  • Security: Store sensitive information like database credentials and API keys outside of your codebase. See ENV var security.
  • Portability: Code can run in different environments without modification. Allow each team member to have their own local settings without affecting the shared codebase.
  • Separation: Keep code and configuration apart.

Found a tpyo?Edit