pár dotazů k config

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
crempa
Člen | 198
+
0
-

Zdravim,
precetl jsem dokumentaci, ale i tak mam v tomhle smeru par dotazu, pokud me to nekdo pomuze ujasnit milerad to pak doplnim i do dokumentace.. :)

Predne by me zajimalo co je presne mysleno onou „aplikaci“ nastaveni narozdil od jeho pouheho nacteni, resp. co vsechno se „aplikuje“, z manualu jsem pochopil ze jsou to hodnoty konstant a nektera z moznych nastaveni PHP

  1. je nekde receno co vsechno lze takhle pres set.* nastavit?
  2. pomoci variable.* se nastavuji jen nejake specialni promenne pouzite nekde dal, ci obecne jakakoli promenna a ta je pak dostupna, nebo to jsou promenne jen v ramci konfigu samotneho?
  3. pomoci database.* lze nejak primo nastavit prihlasovaci udaje, nazev databaze apod. pro dibi s tim ze pokud nekde vyvolam connection tak se dana nastaveni automaticky pouziji, nebo je to jen pomucka, ale stejne pak budu v ramci pripojeni zadavat rucne tyto config klice?
  4. v ramci ukazkoveho *.ini je pouzit i konstrukt [production < common], neni me presne jasne zda to production oznacuje novy nazev prostredi s tim ze < predstavuje neco jako zdedeni nastaveni pouziteho u common ci jaky to ma presne vyznam ?
  5. pod rezimem prostredi si predstavuji pouze identifikator ktery muzu libovolne v aplikaci cist a ridit tim procesy spojene s tim a tim prostredim, v manualu se pise ze ho lze nastavit i v ramci configu, ale uz tam neni uvedeno jak na to, hadam set.mode ci je to snad ono [production < common] ?
  6. na jakem principu funguje zminovana autodetekce, je to tak ze pokud si vytvorim nazev prostredi [debug] a to pouziji tak me i Environment::isDebugging() bude vracet true a stejne tak u dalsich modu? Jaky je defaultni rezim prostredi?
  7. ma rezim (resp. ony tri zakladni rezimy) prostredi nejaky vliv i na dalsi casti nette krome ladenky?
  8. mozna by hodne pomohlo dat do dokumentace k prikladu 5ti prostredi co je na konci i ukazkovy config.ini co dane nastaveni resi pro ten pripad..

Diky kazdemu kdo me pomuze alespon s casti mych dotazu

ViliamKopecky
Nette hipster | 230
+
0
-

Alespoň něco snad dokážu zodpovědět…

  1. pomoci variable.* se nastavuji jen nejake specialni promenne pouzite nekde dal, ci obecne jakakoli promenna a ta je pak dostupna, nebo to jsou promenne jen v ramci konfigu samotneho?

Obecně jakákoliv proměnná. Později přístupná přes Environment::getVariable(…);

  1. pomoci database.* lze nejak primo nastavit prihlasovaci udaje, nazev databaze apod. pro dibi s tim ze pokud nekde vyvolam connection tak se dana nastaveni automaticky pouziji, nebo je to jen pomucka, ale stejne pak budu v ramci pripojeni zadavat rucne tyto config klice?

database je jenom pojmenování konfigurace (můžeš si to pojmenovat db, mojedatabaze,…), dibi připojíš jako dibi::connect(Environment::getConfig(‚database‘))

  1. v ramci ukazkoveho *.ini je pouzit i konstrukt [production < common], neni me presne jasne zda to production oznacuje novy nazev prostredi s tim ze < predstavuje neco jako zdedeni nastaveni pouziteho u common ci jaky to ma presne vyznam ?

Ano, představuje to zdědění a jsou to právě ty názvy prostředí. Význam je v tom, že na produkčním máš například jiné přístupové údaje k databázi než na vývojovém prostředí

  1. pod rezimem prostredi si predstavuji pouze identifikator ktery muzu libovolne v aplikaci cist a ridit tim procesy spojene s tim a tim prostredim, v manualu se pise ze ho lze nastavit i v ramci configu, ale uz tam neni uvedeno jak na to, hadam set.mode ci je to snad ono [production < common] ?

Ano, tak

  1. na jakem principu funguje zminovana autodetekce, je to tak ze pokud si vytvorim nazev prostredi [debug] a to pouziji tak me i Environment::isDebugging() bude vracet true a stejne tak u dalsich modu? Jaky je defaultni rezim prostredi?

Nette se myslím orientuje podle IP adresy serveru, pokud je localhostová (tuším 127.0.0.1), pak spouští prostředí Environment::DEVELOPMENT, jinak Environment::PRODUCTION

LM
Člen | 206
+
0
-
  1. je nekde receno co vsechno lze takhle pres set.* nastavit?

Cokoliv co lze nastavit pomocí funkce ini_set, ale u některých voleb třeba u include_path se použije metoda k tomu určená: set_include_path.

Ještě k té detekci není to jen localhost, ale jakákoliv lokální IP adresa třeba 192.168.…

crempa
Člen | 198
+
0
-

Diky moc panove,

jeste k te autodetekci, je nekde k nalezeni jak presne to funguje? S nette zacinam a zatim sem to ve zdrojacich nenasel.. nejak me neni jasny jak to muze fungovat s IP serveru, pochopil bych IP ze ktere prisel pozadavek.. jak se pak resi treba takovej NAT..? jsou to tedy obecne adresy dle RFC 1918 ? – huh asi sem uz velkej stoural, ale nemam rad kdyz se neco dela za me a ja presne nevim jak se to dela :-)

Jinak predpokladam ze tu autodetekci lze „pretizit“ pevnym nastavenim (to je asi mysleno v dokumentaci tou rucni aktivaci v priklade na konci)

Jan Tvrdík
Nette guru | 2595
+
0
-
phx
Člen | 651
+
0
-

Kdyz jsem se dival naposled do zdrojaku tak DEVELOPMENT se nastavi kdyz IP masiny je privatni. Tz 127.* 192.168.* a jeste tusim dalsi dve skupiny co si z hlavy nepamatuji

David Grudl
Nette Core | 8218
+
0
-

crempa napsal(a):

Jinak predpokladam ze tu autodetekci lze „pretizit“ pevnym nastavenim (to je asi mysleno v dokumentaci tou rucni aktivaci v priklade na konci)

Ano, změnou tzv. režimu production. A to buď přímo v config.ini nastavením mode.production = TRUE nebo FALSE, nebo příkazem Environment::setMode('production', TRUE) (či FALSE).

(režim se ještě nedávno jmenoval live, ale dal jsem za pravdu uživatelům, kteří navrhovali změnit jej na production – pokud máte starší verzi, může tam být původní název)

Jod
Člen | 701
+
0
-

Mne napríklad autodetekcia nefunguje, ktovie prečo

romansklenar
Člen | 655
+
0
-

Nemáš třeba nastavený nějaký virtuální host?

David Grudl
Nette Core | 8218
+
0
-

Jod napsal(a):

Mne napríklad autodetekcia nefunguje, ktovie prečo

Autodetekce se provádí podle proměnné $_SERVER['SERVER_ADDR']. Jakou má hodnotu?

Jod
Člen | 701
+
0
-

SERVER_ADDR – ::1

David Grudl
Nette Core | 8218
+
0
-

…což se bude detekovat jako production mode.

Zdá se, že jde o nějaký bug Mac OS X a adresa představuje IPv6 Loopback Address. Takhle adresa se ti zobrazuje na lokálu, nebo na produkčním serveru?

Jod
Člen | 701
+
0
-

No tá adresa je z MAMP phpinfo v môjom MacBooku na ktoróm pracujem, takže lokál.