# Promenne souboru `.env`:
## 1) `APP_ENV`
- Tato promenna je vlastne pro systemy Laravelu, an zaklade ni se pak nastavuji dalsi 'systemove' promenne Laravelu
- V nasem pripade ja to nikde nepouzivam, ale je mozne ze az nekdo bude pridelavat neco jineho tak to urcite pouzije
- Hodnoty teto promenne vlastne zalezi na to jak si to uzivatel zvoli, ale best-practice je hodnota `production` pro produkci a hodnota `local` pro development
- Samozrejme pokud chceme mit vice fazi tak klidne muzeme mit: `production`, `local`, `staging`, `testing`, apod.
- Tady teda poprosim v tom `prepare.sh` nastavit hodnotu `production` pro produkci a hodnotu `local` pro development
## 2) `APP_DEBUG`
- Tato promenna je pro systemy Laravelu a urcuje zdali se maji vypisovat chyby a warningy
- Mozne hodnoty: `true` nebo `false`
- Tady teda poprosim v tom `prepare.sh` nastavit hodnotu `false` pro produkci a hodnotu `true` pro development
## 3) `CUZKWSDP_MODE`
- Toto je promenna kterou jsem si vytvoril a slouzi ciste pro moje ucely aby aplikace vedela zdali se maji pouzit produkcni data nebo development data
- Mozne hodnoty: `dev` pro development a `prod` pro produkci
- Hodnota teto promenne ma vliv na:
- to jaka DB se pouzije
- cestu ke slozce kam se ukladaji persistentni data
- jake pristupove udaje se pouziji pro volani cizi API
- zdali se vola testovaci APi nebo produkcni API
- Tady teda poprosim v tom `prepare.sh` nastavit hodnotu `prod` pro produkci a hodnotu `dev` pro development
# DULEZITE:
1) Jak vidis rozdil mezi `APP_ENV` a `CUZKWSDP_MODE` je zjevny. `CUZKWSDP_MODE` jsem vytvoril protoze ta cizi APIna kterou volam ma stage - produkcni prostredi a testovaci prostredi. Zatimco `APP_ENV` se tyka nasi aplikace - pokud napr. v budoucnu pridame `staging` tak to lze pridat a nemusi to mit vliv na `CUZKWSDP_MODE`
2) Dulezite je aby se po modifikaci souboru `.env` provedl prikaz `php artisan config:clear` - tzn. po tom, co probehne ten `prepare.sh`
# Perzistentni data
To do jake slozky se maji ukladat presistentni data (konkretne ta CSVcka) mam v `.env` promenne `CUZKWSDP_SESTAVY_PATH`.
Tuto promennou `CUZKWSDP_SESTAVY_PATH` ale v `.env` souboru nenajdes, protoze tu cestu stanovuju napevno v `config\cuzkwsdp.php`:
```php
$mode = env('CUZKWSDP_MODE', 'dev'); // Zjistim mod CUZKWSDP_MODE z .env
switch ($mode) { // Na zaklade modu urcim dalsi veci
case 'prod':
$wsdl_base_url = env('CUZKWSDP_WSDL_BASE_URL_PROD', 'https://katastr.cuzk.cz');
$username = env('CUZKWSDP_USERNAME_PROD', 'WSTEST');
$password = env('CUZKWSDP_PASSWORD_PROD', 'WSHESLO');
$sestavy_path = env('CUZKWSDP_SESTAVY_PATH', public_path('storage') . '/sestavy');
$sestavy_base_url = env('CUZKWSDP_SESTAVY_BASEURL', '/public/storage/sestavy/');
break;
default:
case 'dev':
$wsdl_base_url = env('CUZKWSDP_WSDL_BASE_URL_DEV', 'https://wsdptrial.cuzk.cz/trial');
$username = env('CUZKWSDP_USERNAME_DEV', 'WSTEST');
$password = env('CUZKWSDP_PASSWORD_DEV', 'WSHESLO');
$sestavy_path = env('CUZKWSDP_SESTAVY_PATH', public_path('storage') . '/sestavy-dev');
$sestavy_base_url = env('CUZKWSDP_SESTAVY_BASEURL', '/public/storage/sestavy-dev/');
break;
}
return [
'wsdl_base_url' => $wsdl_base_url, // URL adresa APIny
'username' => $username, // username do APIny
'password' => $password, // heslo do APIny
'sestavy_path' => $sestavy_path, // cesta kam se ulozi presistentni data
'sestavy_base_url' => $sestavy_base_url, // cesta kam se ulozi presistentni data ale urceno pro frontend
];
```
Pokud si projekt rozjedu na lokale, tak budu mit:
```php
$sestavy_path = 'C:\dev2\cuzkdekcz\public\storage/sestavy-dev'; // 'cuzkdekcz' je root projektu/repozitare
$sestavy_base_url = '/public/storage/sestavy-dev/';
```
Jak vidis `$sestavy_path` je pro back-end abych to uchopil v PHP a pak ten soubor ulozil na to patricne misto napr. pres `file_put_contents`:
```php
file_put_contents($sestavy_path . "/soubor.xml", $content);
```
Zatimco `$sestavy_base_url` je pro front-end aby si clovek mohl stahnout ten soubor kdyz do prohlizece zada tu cestu - v pripade ze appka bezi na `http://127.0.0.1:8000`, tak cesta k souboru bude `http://127.0.0.1:8000/public/storage/sestavy-dev/soubor.xml`
Doposud se to tedy ukladalo sem: `root_repa/public/storage/`
Nyni teda bych te poprosil v tom `prepare.sh` nastavit hodnotu promenne `CUZKWSDP_SESTAVY_PATH` dle toho kam to chces ukladat.
Na zaklade toho `CUZKWSDP_SESTAVY_PATH` pak nejak urcim hodnotu toho `$sestavy_base_url` coz je cesta k ulozisti pro frontend nebo ji muzes rovnou nastavit v promenne `CUZKWSDP_SESTAVY_BASEURL` v tom `prepare.sh`