Použití .php jako konfiguračního souboru

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

Zdravím,

mám problém s typem konfiguračního souboru. Hosting běží na nginxu, takže nepodporuje htaccess a nedostanu se ke konfiguraci, takže nenastavím chráněné adresáře. Tady začíná problém. Konfigurace pomocí config.neon je pak volně dostupná. Potřebuji ji dostat do php souboru a načíst ji z něj.

Nejlepší varianta by pro mě byla mít v řetězci neonovou konfiguraci a pomoci Neon::decode() z toho udělat pole a nějak to narvat do Nette.

Hledal jsem na fóru, googlil jsem, zkoušel jsem, ale nevím kde najít řešení.

Pokud někdo víte kde hledat řešení nebo jak načíst jinou konfiguraci než z neon souboru do Nette, prosím pomozte.

Díky

llook
Člen | 407
+
0
-

Můžeš config.neon pojmenovat config.neon.php a na začátek vložit # <?php exit; ?>, ale skryté by měly být i další věci, jako logy nebo temp. Úplně nejlepší bude, když všechno kromě www bude v jiné složce (mimo document root). Jako to má sandbox.

ViPEr*CZ*
Člen | 813
+
0
-

Z PHP to určitě jde podle API, ještě zjistit jakou to má syntaxi… což opravdu nevím a mohl by pomoci někdo z autorů zdrojáků + by možná neškodilo to hodit do dokumentace.

eddyneilo
Člen | 4
+
0
-

Zkusil jsem to přejmenovat a hodit tam ten exit, ale nic. Asi tak lehce Nette obelstit nejde. Jediné co mně to vypíše na obrazovku je „#“. Někde vevnitř to na základě přípony souboru používá specifický Adapter pro php, neon nebo ini.

ViPEr*CZ*
Člen | 813
+
0
-

Takhle vypadá minimální konfig pro development sekci:

<?php
return array(
	'development' => array());
?>

Ty sekce jak jsou v neonu stačí takhle přes return napsat do config.php ekvivalentně.
PS: do dokumentace bych to asi nahodil jako další alternativu.

eddyneilo
Člen | 4
+
0
-

Diky,

vypada to, že to funguje. Předtim jsem to zkoušel podobně akorát jsem tam nechal ten common a nedal tam přímo development. Nechal jsem tam to development < common: a s tim to nejede.

Funguje mně to takto:

<?php
require 'Neon.php';
return Neon::decode('development: ...neon konfigurace...');
paranoiq
Člen | 392
+
0
-

@eddyneilo: jak psal llook: „skryté by měly být i další věci“

promluv si s hostingem, jak se tyhle věci u nich řeší. pokud nepomohou, najdi jiný…

případně se zeptej na fórech nginxu jak schovávat adresáře a soubory