Honestly, it is a best practice used by current frameworks (symfony, laravel) to use an .env file that you will have into the .gitignore. On the otherside, you will commit a .env.dist or .env.example file with the basic template of your file.
Exanple of a DB .env.dist file:
Another way of doing would be to store into the system itself environment variables, this is often used when you're deploying onto a production server and you don't wan't to share an .env file over the internet. So they will be manually input on the host machine.
After that you can access those variables with getenv('your_var') or using the alias