Tredun ohjelmistokehittäjien kurssimateriaaleja
Kun järjestelmää kehitetään käytetään yleensä paikallista tietokantaa, johon kirjaudutaan kovakoodatuilla salasanoilla. Kun järjestelmä siirretään verkkoon, on otettava käyttöön oikeat salasanat, ja näitä salasanoja ei voi tallentaa koodiin eikä myöskään version hallintaan (github). PIdä siis huolta, että .env on listattu .gitignore - tiedostossa.
Jotta konfigurointi helpottuisi, on tavallista tallentaa tällaiset tiedot .env - tiedostoon. Tämä tiedosto on normaalisti tekstitiedosto, ja tarvitsemme sen lukemiseen kirjaston (näitä on useita, tässä käytössä PHPdotenv).
Asenna PHPdotenv - kirjasto composerin avulla (Asenna Composer):
> composer require vlucas/phpdotenv
Ympäristömuuttujien nimet voi itse keksiä, ne tallentuvat PHP:n superglobaaleiksi muutujiksi ja niihin voi viitata $_ENV tai käyttämällä getenv([MY_ENV_VAR_NAME]) -funktiota.
Tee siis .env - tiedosto, esim. tällainen:
##########################################
# Configuration for localhost hosting #
##########################################
DB_DBTYPE = "MySql"
DB_HOST = "localhost"
DB_USERNAME = "root"
DB_PASSWORD = "mypass123"
DB_NAME = "todos"
DB_PORT = "3306"
Ota se käyttöön aivan koodisi alussa, esim. env.php - tiedostossa:
require __DIR__ . '/vendor/autoload.php';
$dotenv = Dotenv\Dotenv::create(__DIR__);
$dotenv->load();
Nyt voit käyttää ympäristömuuttujia koodissasi esim. kun teet tietokantayhteyden:
$host = getenv('DB_HOST');
$port = getenv('DB_PORT');
$dbname = getenv('DB_NAME');
$user = getenv('DB_USERNAME');
$password = getenv('DB_PASSWORD');
$connectionString = "mysql:host=$host;dbname=$dbname;port=$port;charset=utf8";
$pdo = new PDO($connectionString, $user, $password);