Jednoduché API ve frameworku Slim 4 – č. 15 Použití Dotenv proměnných
- Jednoduché API ve frameworku Slim 4 – č. 1 Instalace
- Jednoduché API ve frameworku Slim 4 – č. 2 Základní CRUD
- Jednoduché API ve frameworku Slim 4 – č. 3 Struktura API a připojení k databázi
- Jednoduché API ve frameworku Slim 4 – č. 4 Testování funkcionality našeho malého API
- Jednoduché API ve frameworku Slim 4 – č. 5 Vylepšení UserControlleru
- Jednoduché API ve frameworku Slim 4 – č. 6 Přidání Model a Repositories
- Jednoduché API ve frameworku Slim 4 – č. 7 Validace dat
- Jednoduché API ve frameworku Slim 4 – č. 8 Přidáme si do datbáze produkty
- Jednoduché API ve frameworku Slim 4 – č. 9 Přidání zboží uživatelům
- Jednoduché API ve frameworku Slim 4 – č. 10 Autentizace uživatele
- Jednoduché API ve frameworku Slim 4 – č. 11 Endpointy pouze pro přihlášené uživatele
- Jednoduché API ve frameworku Slim 4 – č. 12 Testování našeho API
- Jednoduché API ve frameworku Slim 4 – č. 13 Úpravy API pro přístup z Vue aplikace
- Jednoduché API ve frameworku Slim 4 – č. 14 Úpravy API pro přístup z Vue aplikace preflight request a token v hlavičce
- Jednoduché API ve frameworku Slim 4 – č. 15 Použití Dotenv proměnných
Dneska jedno malé vylepšení. Protože používám naše API na různých vývojových prostředí s různou konfigurací, nelíbí se mi natvrdo vložené konfigurace prostředí ve skriptech. Do našeho APi si přidáme použití Dotenv proměnných, které jednak zpřehledňují náš kód, jednak umožňují snazší konfiguraci na různých prostředích a také přispívají k větší bezpečnosti našeho API.
Začneme instalací knihovny
composer require vlucas/phpdotenv
a do našeho public/index.php přidáme použití této knihovny
1 2 3 |
// Načtení .env souboru $dotenv = Dotenv::createImmutable(dirname(__DIR__)); $dotenv->load(); |
a také upravíme database.php
1 2 3 4 5 6 7 8 9 10 |
return [ 'driver' => $_ENV['DB_DRIVER'] ?? 'mysql', 'host' => $_ENV['DB_HOST'] ?? 'localhost', 'database' => $_ENV['DB_NAME'] ?? 'api', 'username' => $_ENV['DB_USER'] ?? 'root', 'password' => $_ENV['DB_PASS'] ?? '', 'charset' => $_ENV['DB_CHARSET'] ?? 'utf8mb4', 'collation' => $_ENV['DB_COLLATION'] ?? 'utf8mb4_unicode_ci', 'prefix' => $_ENV['DB_PREFIX'] ?? '', ]; |
no a v rootu našeho API nezapomeneme vytvořit soubory .env a .enva.example. Ten první bude obsahovat proměnné pro naši konkétní konfiguraci (pokud používáte Git a nahráváte skripta na nějaké sdílené úložiště, nezapomeňte tento soubor přidat do .gitignore, proměnné prsotředí by neměli v žádném případě opustit váš stroj) a druhý slouží právě ostatním developerům jako příklad, co vše je potřeba nastavit pro správný běh aplikace, takže .env.example vypadá v našem případě
1 2 3 4 5 6 7 8 |
DB_DRIVER=mysql DB_HOST=localhost DB_NAME=api DB_USER=root DB_PASS=password DB_CHARSET=utf8mb4 DB_COLLATION=utf8mb4_unicode_ci DB_PREFIX= |
No a samozřejmě hned otesujeme, zda vše funguje jak má.
Ještě když se podívámdo našeho cors.php máme tam natvrdo vloženou proměnnou
origin pro přehlednost by bylo vhodné také použít .env proměnné a v našem cors.php použít
'origin' => [($_ENV['APP_ORIGIN'] ?? 'http://localhost:5173')], a samozřejmě do .env souboru musíme doplnit