Správná cesta wwwDir při použití více indexů
- Tomáš Vodička
- Člen | 28
Mám v projektu definovaný wwwDir
takto (nevím jestli jsem
dříve přehlédl, že Nette vyplňuje tuto proměnnou samo, nebo to v té
době ještě nedělalo)
parameters:
wwwDir: %appDir%/../www/
a pomocí DI si proměnnou předávám do modelu, abych mohl pracovat se
soubory ve složce www/upload/
services:
- Model(%wwwDir%)
Toto funguje v pořádku. Problém nastal, když jsem z určitých důvodů
přidal do aplikace další index.php
v jiném zanoření (např.
www/api/index.php
) – v tento moment jsem zjistil, že mnou
definovaná proměnná wwwDir
je od Nette tiše přepsána na
složku s aktuálně spouštěným index.php
, protože defaultní
proměnné se aplikují až po načtení všech configů
Pokud bych si tedy chtěl definovat proměnnou pro složku
www/upload/
, nesmím pro to využít wwwDir
, ale
obejít to třeba takto?
parameters:
uploadDir: %appDir%/../www/upload/
- Marek Bartoš
- Nette Blogger | 1274
To že wwwDir se odvíjí od vstupního bodu je známý problém, už jsem se ho pokoušel vyřešit https://github.com/…trap/pull/65
To že mají výchozí parametry prioritu je dané tím, že parametry přidané přes Configurator mají mít prioritu před těmi z configu a bohužel se tebou definované parametry načítají v Configurator úplně stejně jako výchozí – asi by se dalo vyřešit, ale pro teď se s tím budeš muset smířit.
Řešení je nastavit si wwwDir přes Configurator v bootstrapu
$configurator->addStaticParameters([
'wwwDir' => dirname(__DIR__) . '/www',
]);
- Marek Bartoš
- Nette Blogger | 1274
Pepino napsal(a):
Určité důvody pro další index v aplikaci neexistujou. Proč to tak máš? Čeho se snažíš docílit?
Ať má důvod jakýkoli, tak existují. Třeba pro konzoli to tak mají všichni.
- Tomáš Vodička
- Člen | 28
Mám na serveru skript pro spouštění consumerů pro RabbitMQ – server
je nějakou linuxovou logikou spouští a znovuspouští při chybě sám.
Trochu jsem tedy osekal klasický index.php
a dal ho zvlášť do
složky bin
- Tomáš Vodička
- Člen | 28
Marek Bartoš napsal(a):
To že wwwDir se odvíjí od vstupního bodu je známý problém, už jsem se ho pokoušel vyřešit https://github.com/…trap/pull/65
To že mají výchozí parametry prioritu je dané tím, že parametry přidané přes Configurator mají mít prioritu před těmi z configu a bohužel se tebou definované parametry načítají v Configurator úplně stejně jako výchozí – asi by se dalo vyřešit, ale pro teď se s tím budeš muset smířit.
Řešení je nastavit si wwwDir přes Configurator v bootstrapu
$configurator->addStaticParameters([ 'wwwDir' => dirname(__DIR__) . '/www', ]);
Super, díky za info. Tímhle způsobem to funguje tak, jak bych čekal